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

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

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

with
    department_actual_salary as (
        select
            staff_tb.department,
            ifnull(
                round(
                    (
                        sum(salary_tb.normal_salary) - sum(salary_tb.dock_salary)
                    ) / count(staff_tb.department),
                    2
                ),
                0.00
            ) as average_actual_salary
        from
            staff_tb
            left join salary_tb on salary_tb.staff_id = staff_tb.staff_id
        group by
            staff_tb.department
    ),
    male_salary_tb as (
        select
            staff_tb.department,
            round(
                (
                    sum(salary_tb.normal_salary) - sum(salary_tb.dock_salary)
                ) / count(staff_tb.department),
                2
            ) as average_actual_salary_male
        from
            staff_tb
            left join salary_tb on salary_tb.staff_id = staff_tb.staff_id
        where
            staff_tb.staff_gender = 'male'
        group by
            staff_tb.department
    ),
    female_salary_tb as (
        select
            staff_tb.department,
            round(
                (
                    sum(salary_tb.normal_salary) - sum(salary_tb.dock_salary)
                ) / count(staff_tb.department),
                2
            ) as average_actual_salary_female
        from
            staff_tb
            join salary_tb on salary_tb.staff_id = staff_tb.staff_id
        where
            staff_tb.staff_gender = 'female'
        group by
            staff_tb.department
    )
select
    department_actual_salary.department,
    department_actual_salary.average_actual_salary,
    ifnull(male_salary_tb.average_actual_salary_male, 0.00) as average_actual_salary_male,
    ifnull(female_salary_tb.average_actual_salary_female, 0.00) as average_actual_salary_female
from
    department_actual_salary
    left join male_salary_tb on department_actual_salary.department = male_salary_tb.department
    left join female_salary_tb on department_actual_salary.department = female_salary_tb.department
order by
    department_actual_salary.average_actual_salary desc
全部评论

相关推荐

牛客51274894...:照片认真的吗,找个专门拍证件照的几十块钱整端正点吧,要不就别加照片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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