215题解 | 利用窗口函数求各个时期的工资涨幅,再加总
查找在职员工自入职以来的薪水涨幅情况
https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
# 这种做法曲解题意了,用不着employees表,并默认salaries表中from_date最小值就是入职时间
select a.emp_no
,sum(a.growth_p) growth
--将各个小的薪资涨幅加总,即是所求
from (
--求出每个员工,各个任职时期下的薪资涨幅
select emp_no
,salary-lag(salary,1) over(partition by emp_no order by from_date) growth_p
from salaries
where emp_no in (
--筛选出还在职的员工emp_no
select emp_no
from salaries
group by emp_no
having max(to_date)="9999-01-01"
)
) a
group by a.emp_no
order by growth

SHEIN希音公司福利 356人发布