zoukankan      html  css  js  c++  java
  • 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
                                    )

    结果图:

  • 相关阅读:
    beagle ubuntu
    screen usage
    centos install nginx¢os 添加网易源
    心情舒畅,升级到u10.04了
    nginx 运行,检测
    联通宽带测速
    virtualenv usage
    linux 终端下utf8 和gbk相互转换
    [梦]2005725
    git install on centos
  • 原文地址:https://www.cnblogs.com/wodexk/p/10703850.html
Copyright © 2011-2022 走看看