题解 | #left join 的应用#
统计各个部门的工资记录数
https://www.nowcoder.com/practice/6a62b6c0a7324350a6d9959fa7c21db3
with dd as (
select e.emp_no,
e.dept_no,
d.dept_name
from dept_emp e, departments d
where e.dept_no = d.dept_no
)
select d.dept_no,
d.dept_name,
count(s.salary) sum
from salaries s
left join dd d
on d.emp_no = s.emp_no
group by d.dept_no
order by d.dept_no
本题使用 left join
将主表 salaries
的所有员工信息保留,并通过临时表获取了每个员工所在部门的 dept_name
,最后通过 group by
聚合相同部门的员工统计记录即可。