Mysql案例5:取得平均薪资最高的部门的部门名称
一、要求:查询平均薪水最高部门的部门编号
二、背景:当前数据库有employee表和department表,数据分别如下:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。employee表:
department表:
三、难点:
1、需要考虑最高平均薪资可能在多个部门同时出现,查询出来的结果需要涵盖所有最高平均薪资的部门id
2、部门名称和员工工资不在一个表,所以需要用连接进行查询获取部门名称
四、SQL语句
SELECT e.departmentid,d.name,AVG(e.salary) avgsal FROM employee e INNER JOIN department d ON e.departmentid =d.id GROUP BY e.departmentid,d.`name` HAVING avgsal = ( SELECT MAX(t.avgsal) maxsal FROM ( SELECT departmentid,AVG(salary) avgsal FROM employee GROUP BY departmentid) t )
结果图:
更多精彩