Mysql_案例3:查詢出部門中所有人的平均薪資等級


 案例:查詢出部門中所有人的平均薪資等級

背景:當前數據庫的department表、salgrade表、employee表,數據分別如下:

 

 

情景1、查詢部門中所有人的平均薪水的等級

第一步:先查詢出每個部門的平均薪資,起別名t ,用作臨時表(一會放入子查詢)

-- 查詢出每個部門的平均薪資,起別名t ,用作臨時表(一會放入子查詢)
SELECT 
        e.departmentid,AVG(e.salary) as avgsal
FROM
        employee as e
GROUP BY
        departmentid;

結果圖:

 最終SQL代碼:再為 t 表里的平均薪資查詢出對應的薪資等級

-- 用查詢出來的每個部門平均薪資表t,去匹配薪資等級表,找出每個部門的平均薪資是屬於什么薪資等級
SELECT
        t.departmentid,s.grade
FROM
        (SELECT 
                e.departmentid,AVG(e.salary) as avgsal
        FROM
                employee as e
        GROUP BY
                e.departmentid) t
INNER JOIN
        salgrade s
on 
        t.avgsal BETWEEN s.losal and s.hisal
ORDER BY
        t.departmentid;

 

最終查詢后的結果圖:

 

情景2、查詢部門中所有人的薪資等級的平均等級

第一步:先查出每個部門里員工對應的薪資等級,起別名為 t ,用作臨時表(一會用作子查詢)

SELECT 
                e.*,s.grade
FROM 
                employee  e
INNER JOIN
                salgrade  s
ON 
                e.salary  BETWEEN s.losal and s.hisal
ORDER BY 
                departmentid;

結果圖:

最終SQL語句:再對 t 表里的每個部門員工的薪資等級求均值

SELECT 
        t.departmentid,AVG(t.grade) as avgra
FROM
        (SELECT 
                                    e.*,s.grade
        FROM 
                             employee  e
        INNER JOIN
                                 salgrade  s
         ON 
                             e.salary  BETWEEN s.losal and s.hisal
ORDER BY departmentid ) t

GROUP BY t.departmentid;

結果圖:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM