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

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

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进行运算

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

全部评论

相关推荐

05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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