题解 | 各个部门实际平均薪资和男女员工实际平均薪资

各个部门实际平均薪资和男女员工实际平均薪资

https://www.nowcoder.com/practice/e8272685d07347cc88667f31f7989231

With 
    t_salary AS(
    SELECT
    t1.department,
    ROUND(AVG(t2.normal_salary - t2.dock_salary),2) avg_salary
    FROM staff_tb t1
    INNER JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    GROUP BY t1.department
    ),

    m_salary as(
    SELECT
    t1.department,
    IFNULL(ROUND(AVG(t2.normal_salary - t2.dock_salary),2),'0.00') average_actual_salary_male
    FROM staff_tb t1
    LEFT JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    WHERE t1.staff_gender = 'male'
    GROUP BY t1.department
    ),

    f_salary as(
    SELECT
    t1.department,
    IFNULL(ROUND(AVG(t2.normal_salary - t2.dock_salary),2),'0.00') average_actual_salary_female
    FROM staff_tb t1
    LEFT JOIN salary_tb t2
    ON t1.staff_id = t2.staff_id
    WHERE t1.staff_gender = 'female'
    GROUP BY t1.department
    )

SELECT 
a1.department,
a1.avg_salary average_actual_salary,
IFNULL(b1.average_actual_salary_male,'0.00') average_actual_salary_male,
c1.average_actual_salary_female
FROM t_salary a1
LEFT JOIN m_salary b1
ON a1.department = b1.department
LEFT JOIN f_salary c1
ON a1.department = c1.department
ORDER BY average_actual_salary DESC

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务