我是靠谱客的博主 朴实飞机,最近开发中收集的这篇文章主要介绍leetcodeSQL:615. 平均工资:部门与公司比较,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
思路:
找出每个发薪日得公司平均工资
找出每个发薪日得不同部分平均工资,用groupby 两个主键
然后并起来两个表,通过员工id连接

用left取月份前7位
注意最后要用groupby去重

sql

# Write your MySQL query statement below

select left(t1.pay_date, 7) pay_month, t2.department_id department_id,
(
    case
        when t2.depAvg > t1.wholeAvg
            then 'higher'
        when t2.depAvg = t1.wholeAvg
            then 'same'
        else 'lower'
    end
) comparison
from
(
    # 获取每个pay_date的公司平均工资
    select pay_date, avg(amount) wholeAvg
    from salary
    group by pay_date
) t1,
(
    # 获取每个pay_date的部门平均工资
    select pay_date, department_id, avg(amount) depAvg
    from salary s, employee e
    where s.employee_id = e.employee_id
    group by pay_date, department_id # 同时作为primary key
) t2
where t1.pay_date = t2.pay_date
# 保证不重复
# dubug出来的,相同的只能有一次
group by 1, 2

总结:
迄今为止写过得最长sql

最后

以上就是朴实飞机为你收集整理的leetcodeSQL:615. 平均工资:部门与公司比较的全部内容,希望文章能够帮你解决leetcodeSQL:615. 平均工资:部门与公司比较所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部