思路:

  1. 先求出在职人员的信息作为主表(此处命名为“当前在职员工”表);
  2. 然后求出每人入职时(即为时间最早)信息(包含工资)作为副表(命名为“入职时的员工”);
  3. 两表连接作为整体表;
  4. 查询出员工编号,以及主表的薪资减去副表的薪资即可。

SELECT
当前在职员工.emp_no,
当前在职员工.salary-入职时的员工.salary as growth
from (select * from salaries where to_date='9999-01-01') as 当前在职员工
left join (select * from salaries group by emp_no order by from_date) as 入职时的员工 #此处,分组后,每一组如果有多行值,默认显示第一行的值,所以加上了 order by,显示入职时间最早的信息(即包含了入职时的薪资)
on 当前在职员工.emp_no=入职时的员工.emp_no;