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

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

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

with
    a as (
        select
            staff_id,
            normal_salary - dock_salary nd
        from
            salary_tb
    ),
    t1 as (
        select
            department,
            round(avg(nd), 2) average_actual_salary
        from
            staff_tb st
            inner join a on st.staff_id = a.staff_id
        group by
            department
    ),
    t2 as (
        select
            department,
            ifnull(round(avg(nd), 2), 0.00) average_actual_salary_male
        from
            staff_tb st
            inner join a on st.staff_id = a.staff_id
        where
            staff_gender = 'male'
        group by
            department
    ),
    t3 as (
        select
            department,
            ifnull(round(avg(nd), 2), 0.00) average_actual_salary_female
        from
            staff_tb st
            inner join a on st.staff_id = a.staff_id
        where
            staff_gender = 'female'
        group by
            department
    )
select
    t1.department,
    ifnull(average_actual_salary, 0.00) average_actual_salary,
    ifnull(average_actual_salary_male, 0.00) average_actual_salary_male,
    ifnull(average_actual_salary_female, 0.00) average_actual_salary_female
from
    t1
    left join t2 on t1.department = t2.department
    left join t3 on t1.department = t3.department
order by
    average_actual_salary desc

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务