方法一:
思路:
这里三表 join,根据部门编号 dept_no 和部门名称 dept_name 分组,用 count 聚合出结果即可。
代码:
select
ds.dept_no,
ds.dept_name,
count(salary) sum
from
departments ds
left join dept_emp dp on ds.dept_no = dp.dept_no
left join salaries s on dp.emp_no = s.emp_no
group by
ds.dept_no,
ds.dept_name
order by
ds.dept_no
方法二:
思路:
思路:将 departments 和 dept_emp 联结(左联结内联结都可以),得到员工对应的部门编号和部门名称后,再联结 salaries 表,通过对部门分组,得到每组工资数。
代码:
SELECT
a.dept_no,
a.dept_name,
count(salary) AS sum FROM (
SELECT
d.dept_no,
de.emp_no,
d.dept_name
FROM
dept_emp de
LEFT JOIN departments d ON de.dept_no = d.dept_no
) a
INNER JOIN salaries s ON a.emp_no = s.emp_no
GROUP BY
a.dept_no
order by
a.dept_no



京公网安备 11010502036488号