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

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

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

难点

这道题的关键(难点)在于:

  • 对象是在职员工
  • growth运算逻辑是:现在的salary - 最初的salary

思路:

  • 在职员工:to_date = '9999-01-01'
  • 现在的salary: to_date = '9999-01-01'
  • 最初的salary: WHERE salaries.from_date = employees.hire_date
  • 现在的薪资是to_date = '9999-01-01'的 薪资
  • 最初的薪资正是入职日期的薪资(关键!)

下面是我的代码,我认为逻辑比较简明清晰,可以作为参考。

WITH current_salaries AS (
    SELECT e.emp_no, s.salary AS current_salary
    FROM employees e
    JOIN salaries s
    ON e.emp_no = s.emp_no
    WHERE to_date = '9999-01-01'
),
initial_salaries AS (
    SELECT e.emp_no, s.salary AS initial_salary
    FROM employees e
    JOIN salaries s
    ON e.emp_no = s.emp_no
    WHERE e.hire_date = s.from_date
)

SELECT c.emp_no, (c.current_salary - i.initial_salary) AS growth
FROM current_salaries c
JOIN initial_salaries i
ON c.emp_no = i.emp_no
ORDER BY growth;
#题解##解题##sql##刷题##牛客创作赏金赛#
全部评论

相关推荐

有没有佬投这个呀,怎么样呀求问
投递中科院空天信息创新研究院等公司10个岗位
点赞 评论 收藏
分享
白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
07-22 11:07
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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