SELECT q1.emp_no,(q2.salary-q1.salary) as growth from 
(select sa.emp_no,sa.salary,sa.to_date from 
 (select emp_no,min(to_date) as m_d from salaries group by emp_no)as k1 left join salaries as sa on sa.emp_no=k1.emp_no and sa.to_date=k1.m_d) as q1 
left join (select * from salaries where to_date='9999-01-01') as q2 on 
q1.emp_no=q2.emp_no where q2.to_date is not null order by growth asc

第一张表没有用 只用第二张表进行自连接 目的是制作两张表q1,q2 q1:要过滤出每个员工的入职薪资即to_date最小 q2:就过滤出to_date是9999-01-01的值就行了代表在职的最后薪资 然后两张表连接 进行q2.salary-q1.salary就算出差值了 ez