题解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


全部评论

相关推荐

2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务