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

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

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

with t1 as    
(
select emp_no,salary, to_date
from salaries
where emp_no in (select emp_no from salaries where to_date = '9999-01-01')), 
t2 as(
    select 
    emp_no,salary,
    lag(salary,1) over (partition by emp_no order by to_date) as last_time_salary 
    from t1
)
select emp_no,sum(salary-last_time_salary) as growth from t2 group by emp_no order by growth;



1、select emp_no from salaries where to_date = '9999-01-01' 查询出在职员工的emp_no,再通过 in 取出工资表中在职员工的所有工资记录

2、lag(salary,1) over (partition by emp_no order by to_date) 用lag()函数,对员工分组按照to_date日期排序,在每一行后取出上一次的工资

3、最后按照emp_no 分组,计算工资差的和即为薪资涨幅

全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
04-13 18:10
门头沟学院 Java
想熬夜的小飞象在秋招:被腾讯挂了后爸妈以为我失联了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务