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

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

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

with tmp1 as (
    select staff_name, staff_gender, department,
    normal_salary - dock_salary as actual_salary
    from staff_tb
    left join salary_tb using(staff_id)
),
avg_actucal as (
    select department, round(avg(actual_salary),2) as average_actual_salary
    from tmp1
    group by department
),
avg_actucal_male as (
    select department, 
    round(avg(actual_salary),2) as average_actual_salary_male
    from tmp1
    where staff_gender = 'male'
    group by department
),
avg_actucal_female as (
    select department, round(avg(actual_salary),2) as average_actual_salary_female
    from tmp1
    where staff_gender = 'female'
    group by department
)

select avg_actucal.department, average_actual_salary, 
case when average_actual_salary_male is null then 0.00 else average_actual_salary_male end as average_actual_salary_male, 
case when average_actual_salary_female is null then 0.00 else average_actual_salary_female end as average_actual_salary_female
from avg_actucal 
left join avg_actucal_male using(department)
left join avg_actucal_female using(department)
order by average_actual_salary desc

我的代码好长,没想到用coalesce函数和ifnull函数

全部评论

相关推荐

04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务