题目描述:统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sum,按照dept_no升序排序。
代码:

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

为什么dept_name 不属于聚合键,依然可以直接多表连接。
根据我查找的资料官方解释是:当group by 后面跟上主键或者不为空唯一索引时,查询是有效的,因为此时的每一笔数据都具有唯一性。

Mysql官方网站对此的描述链接:https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

对于这道题,我们能在用例输入栏里能看到(当你测试不通过时),dept_no是departments表的主键。
所以以上代码的结果具有唯一性。也就是说depat_name是对应dept_no的。