题解 | #构建两张临时表#

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

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 入职工资表即可得题解。

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-08 16:50
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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