#思路,我们可以求出入职的时候的工资,也就是按照emp_no分组,时间升序第一个的工资,在求一个emp_no分组的时间降序的工资,作为最近工资,相减就是答案,当然,我们要考虑,to_date="9999-01-01"的要求,所有,我们增加子查询,找到那些符合to_date="9999-01-01"的emp_no即可。 select t.emp_no, sum(case when t.m=1 then t.salary when t.d=1 then -t.salary end) as growth from( select emp_no, salary, dense_rank()over(partition by emp_no order by to_date asc) as d, dense_rank()over(partition by emp_no order by to_date desc) as m, to_date from salaries ) as t where t.emp_no in (select emp_no from salaries where to_date="9999-01-01") group by t.emp_no order by growth asc