第一步,根据输出的列名,需要将三张表相关字段join,即 departments d right join dept_emp de on d.dept_no=de.dept_no right join titles t on t.emp_no=de.emp_no 第二步,title类型技术是新增字段,所以用count()over()窗口函数创建,易错点,题目原文是“汇总各个部门所有的员工的title对应的数目”,即是对部门dept_no里面的title进行分类求和有多少个员工,所以其实是count(t.emp_no)over(partition by de.dept_no,title) 最后就是,保存提交提示可能存在dept_no、dept_name、title都一样的情况下,窗口函数需要合并的情况,SELECT DISTINCT 的作用是去除整行的重复,即如果有任何行在 dept_no, dept_name, 和 title 这三列上完全相同,那么这些行在结果集中将只出现一次。换句话说,它将去除重复的行,使得每个 dept_no, dept_name, title 的组合在结果集中都是唯一的。~完整代码如下 select distinct de.dept_no,dept_name,title, count(t.emp_no)over(partition by de.dept_no,title) from departments d right join dept_emp de on d.dept_no=de.dept_no right join titles t on t.emp_no=de.emp_no order by de.dept_no,title