题解 | #汇总各个部门当前员工的title类型的分配数目#

汇总各个部门当前员工的title类型的分配数目

https://www.nowcoder.com/practice/4bcb6a7d3e39423291d2f7bdbbff87f8

select de.dept_no, dept_name, title, count(*) count
from dept_emp de
join departments d
on de.dept_no = d.dept_no
join (
    select * from titles
    where to_date = '9999-01-01'
) t
on de.emp_no = t.emp_no
group by de.dept_no, dept_name, title
order by dept_no, title;

由于连接条件其实具备两头筛选的功能,因此在职称表中筛选出来目前生效的职称后,还可以通过join连接在职员工号,因为若某员工没有当前生效的职称也不会出现在连接后的结果表中。因此把这个where筛选放在用于连接的子表中,直接就筛选出来了目前在职的且有有效职称的员工。(当然,该思路未考虑有员工在职却无有效职称的情况)

全部评论

相关推荐

10-10 01:10
已编辑
深圳大学 测试开发
面了100年面试不知...:六月到九月,四个项目一个实习,是魔丸吗
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务