思路
知识点:连接多个表,分组,排序
答案
需要“部门在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