题解22 | #统计各个部门的工资记录数#

统计各个部门的工资记录数

http://www.nowcoder.com/practice/6a62b6c0a7324350a6d9959fa7c21db3

第一种方法(自己的答案)
经过测试left join和join在本题中都可以,对于内外连接还不是很懂。
select d.dept_no
, d.dept_name
, count(a.salary)sum
from departments d
left join
    (select de.emp_no
    , de.dept_no
    , sa.salary
    from dept_emp de
    left join salaries sa
    on de.emp_no=sa.emp_no)a
on d.dept_no=a.dept_no
group by d.dept_no, d.dept_name
order by d.dept_no
第二中方法:三表直连,不需要给中间表别名,也不需要剔除中间表的连接键,比较简洁,目前对于逻辑不是特别明确
SELECT d.dept_no, d.dept_name, count(s.salary) AS SUM
FROM departments d JOIN dept_emp de ON d.dept_no = de.dept_no
JOIN salaries s ON de.emp_no = s.emp_no
GROUP BY d.dept_no
ORDER BY d.dept_no ASC


全部评论

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务