题解 | #查找在职员工自入职以来的薪水涨幅情况#

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

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

看到很多人利用最终的工资与初始工资做减法得到增量,所以我就另辟蹊径利用窗口函数做了一版,需要注意的是窗口函数的顺序腰以日期为准否则答案可能会出错,因为我们无法保证工资一直是增加的。

select 
t1.emp_no,
sum(t1.salary - t1.a) as growth
from
    (select
    emp_no,
    salary,
    lag(salary,1,0) over (partition by emp_no order by to_date ASC) as a
    from salaries
    ) as t1
where t1.a != 0
and t1.emp_no in (select distinct emp_no from salaries where to_date = "9999-01-01")
group by t1.emp_no
order by growth

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
铁锈不腻玩家:下面那个袁先生删了,问他怎么回事,头像都换不明白
点赞 评论 收藏
分享
专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务