一、要求:查询平均薪水最高部门的部门编号
二、背景:当前数据库有employee表和department表,数据分别如下:
employee表:
department表:
三、难点:
1、需要考虑最高平均薪资可能在多个部门同时出现,查询出来的结果需要涵盖所有最高平均薪资的部门id
2、部门名称和员工工资不在一个表,所以需要用连接进行查询获取部门名称
四、SQL语句
SELECT e.departmentid,d.name,AVG(e.salary) avgsal FROM employee e INNER JOINdepartment d ONe.departmentid =d.idGROUP BY e.departmentid,d.`name` HAVING avgsal = (SELECT MAX(t.avgsal) maxsalFROM (SELECT departmentid,AVG(salary) avgsalFROM employeeGROUP BY departmentid) t)
结果图: