题解 | 查找在职员工自入职以来的薪水涨幅情况

查找在职员工自入职以来的薪水涨幅情况

https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5

阅读题目后可得知本题的重点为如何求出old_salary以及new_salary,这样就可以利用二者相减求出growth

而salary的数值只在salaries表中呈现,所以我们要利用此表与employees表的关系:

  1. 我们发现old_salary是员工第一次入职时的工资,换言之就是hire_date与form_date相等的时刻
  2. 因为还有一个条件是在职,所以new_salary一定是from_date=9999-01-01时的salary

结合这两个条件,将employees表与salaries表做两次连接便可得出答案

SELECT e.emp_no,
       n.salary-o.salary AS growth
FROM employees e
JOIN salaries o
ON e.emp_no = o.emp_no
AND e.hire_date = o.from_date
JOIN salaries n
ON e.emp_no = n.emp_no
WHERE n.to_date = '9999-01-01'
ORDER BY growth

全部评论

相关推荐

03-06 18:20
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务