Mysql案例4:要求查询平均薪水最高部门的部门编号

Posted 我的星空123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql案例4:要求查询平均薪水最高部门的部门编号相关的知识,希望对你有一定的参考价值。

一、要求:查询平均薪水最高部门的部门编号

二、背景:emplyee表数据如下

三、难点:需要考虑最高平均薪资可能在多个部门同时出现,查询出来的结果需要涵盖所有最高平均薪资的部门id

四、思路:

第一步:先求出每个部门的平均薪资,作为临时表 t

SELECT departmentid,AVG(salary) avgsal
FROM employee
GROUP BY departmentid

第二步:从第一步得出的每个部门平均薪资里求出最高值

SELECT 
            MAX(t.avgsal) maxsal
FROM (
            SELECT departmentid,AVG(salary) avgsal
            FROM employee
            GROUP BY departmentid) t

第三步:用 临时表 t 再去匹配第二步得出的最大值,看哪个部门的平均薪资等于第二步的值

最终代码:

SELECT 
            e.departmentid,AVG(e.salary) avgsal
FROM 
            employee e
GROUP BY 
            departmentid
HAVING 
            avgsal = (
                                SELECT 
                                            MAX(t.avgsal) maxsal
                                FROM (
                                            SELECT departmentid,AVG(salary) avgsal
                                            FROM employee
                                            GROUP BY departmentid) t
                                )

结果图:

 

以上是关于Mysql案例4:要求查询平均薪水最高部门的部门编号的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 练习题10道(1-10题)

6取得平均薪水最高的部门的部门名称bjpowernode34道SQL题

5取得平均薪水最高的部门的部门编号bjpowernode34道SQL题

查找每个部门的最高薪水 - 是不是有更有效的查询?

用oracle怎样查询每个部门的部门编号,部门名称,平均工资,最高工资和最低工资

MySQL 练习题