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

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

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

select a.emp_no, b.salary-a.salary growth
from
(select em.emp_no, sa.salary
from employees em left join salaries sa on em.emp_no = sa.emp_no
and em.hire_date = sa. from_date ) a
inner join
(select em.emp_no, sa.salary
from employees em left join salaries sa on em.emp_no = sa.emp_no
where to_date='9999-01-01')b
on a.emp_no = b.emp_no
order by growth

练习思路:

题目求解的是涨幅,而不是每一次涨幅,所以要先找出最初的工资和最后一次工资:

最初的工资:进入公司的那一天的工资

最后的工资:依旧在职的工资

如果两个工资相减,就可以造出两个表(最初a、最后b),利用两个表再做表连接,最后达到一张大表格中

再分别提取a表的salary和b表的salary进行运算

最重要的是:有由不同时间点构成各个表格的思维,如果要算每次增幅可以创造多表进行

全部评论

相关推荐

06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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