思路:当前工资 - 第一次发的工资(入职工资)= 成长工资
1、子查询生成当前工资表 to_date = '9999-01-01',第一次工资表 to_date = 最小日期;
2、当前工资表与第一次工资表左连接,left join;
3、成长工资growth = 当前工资 - 第一次工资 ;
4、按照成长工资排序, order by growth。
select
sa.emp_no
,sa.salary - lo.l_sa growth -- 工资成长
from salaries sa
left join ( -- 与工作表左连接
select -- 第一次工资
emp_no,
salary l_sa
from salaries
where (emp_no,to_date) in (
select -- 第一次发工资日期
emp_no
,min(to_date)
from salaries
group by emp_no -- 聚合函数必须加 group by 员工有工资调整会重复)) lo
on lo.emp_no = sa.emp_no
where sa.to_date = '9999-01-01' -- 在职人员当前工资成长
order by growth