题解 | #构建两张临时表#
查找在职员工自入职以来的薪水涨幅情况
https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
select
b.emp_no,
(b.salary - a.salary) growth
from
(
select
e.emp_no,
s.salary
from
employees e
left join salaries s on e.emp_no = s.emp_no
where s.to_date = '9999-01-01'
) b
left join (
select
e.emp_no,
s.salary
from
employees e
left join salaries s on e.emp_no = s.emp_no
where e.hire_date = s.from_date
) a
on a.emp_no = b.emp_no
order by growth
本题通过入职和 9999-01-01 两个时间段分别筛选出刚入职和现在的工资表,最后通过现在的工资表 left join 入职工资表即可得题解。
