【MySQL】查找所有在职员工自入职以来的薪水涨幅情况,只用salaries表就OK

查找所有员工自入职以来的薪水涨幅情况

http://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5

题目描述:查找所有在职员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序。

个人思路:
只需要用salaries表就好。因为不能保证员工工资是一直增长的趋势(测试用例存在工资减少的情况,蛮符合实际的毕竟像是迟到啊、早退啊、这个月提成拿的少啊等情况)。所以max(salary)-min(salary)这样只能保证工资是一直增长的趋势时才能用。

先找到当前员工的emp_no

select emp_no
from salaries
where to_date="9999-01-01"

然后将salaries自联结,条件为相同的emp_no当前月对应下个月的记录。这样错开日期后可以用下个月工资-当前月工资来获得每次的工资涨幅,然后求和就好sum(t2.salary-t1.salary)as growth。

select t1.emp_no,
       sum(t2.salary-t1.salary)as growth
from salaries t1 join salaries t2
                   on t1.to_date=t2.from_date
                   and t1.emp_no=t2.emp_no
where t1.emp_no in
             (
                 select emp_no
                 from salaries
                 where to_date="9999-01-01"
             )
group by emp_no
order by growth
牛客题霸-SQL篇【Mysql】 文章被收录于专栏

少壮不努力,老大勤刷题

全部评论
nice,思路很一致,但没想到求和那步,很棒!
点赞 回复 分享
发布于 2024-05-22 17:01 四川
好办法诶
点赞 回复 分享
发布于 2023-02-23 13:51 湖北
感觉这个题解很棒
点赞 回复 分享
发布于 2021-05-02 13:48

相关推荐

最喜欢秋天的火龙果很...:第一份工作一定要往大的去,工资低点没事。后面换工作会更好找,即使你去小公司,你也不可能不会换工作的。所以找大的去
点赞 评论 收藏
分享
评论
36
4
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4337次浏览 75人参与
# AI面会问哪些问题? #
27981次浏览 558人参与
# 厦门银行科技岗值不值得投 #
8044次浏览 188人参与
# 你的实习产出是真实的还是包装的? #
20248次浏览 342人参与
# 找AI工作可以去哪些公司? #
9200次浏览 237人参与
# 春招至今,你的战绩如何? #
65577次浏览 583人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15267次浏览 221人参与
# 从事AI岗需要掌握哪些技术栈? #
9021次浏览 309人参与
# 中国电信笔试 #
32017次浏览 292人参与
# 你做过最难的笔试是哪家公司 #
33703次浏览 237人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340862次浏览 2175人参与
# 哪些公司真双非友好? #
69618次浏览 289人参与
# 阿里笔试 #
178666次浏览 1317人参与
# 机械人避雷的岗位/公司 #
62704次浏览 393人参与
# 小马智行求职进展汇总 #
25133次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14702次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22097次浏览 280人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26258次浏览 310人参与
# 应届生第一份工资要多少合适 #
20690次浏览 86人参与
# 沪漂/北漂你觉得哪个更苦? #
9917次浏览 193人参与
# 聊聊你的职场新体验 #
336513次浏览 1895人参与
# HR最不可信的一句话是__ #
6300次浏览 114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务