思路

知识点:连接多个表,分组,排序

答案

需要“部门在salaries表里面有多少条记录sum”,所以上述连接以salaries为主表,count(*)也不需要指定表

select de.dept_no, d.dept_name, count(*)
from salaries s left join dept_emp de on s.emp_no = de.emp_no
                left join departments d on de.dept_no = d.dept_no
group by dept_no
order by dept_no;

优化

看了评论后,发现可以直接inner join,只需要在count的时候指定对salary表进行计数

select de.dept_no, ds.dept_name, count(s.salary) as sum
from dept_emp as de
    join departments as ds on de.dept_no = ds.dept_no
    join salaries as s on de.emp_no = s.emp_no
group by de.dept_no
order by de.dept_no