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

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

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

select * from
(

SELECT
    t6.emp_no, (salary_1 - salary_0) AS growth #此处select emp_no需交代表名,用来区分emp_no具体来自哪张表。
FROM

(
    -- 初始工资表
    SELECT
        emp_no, salary AS salary_0
    FROM
    (
        SELECT 
            *, 
            DENSE_RANK() OVER (PARTITION BY emp_no ORDER BY to_date) AS a_rank
        FROM 
            salaries
    ) t3
    WHERE 
        a_rank = 1 #求每个员工最早的工资记录
) t4

right JOIN

(
    -- 涨薪后工资表
    SELECT
        emp_no, salary AS salary_1
    FROM
    (
        SELECT 
            *, 
            DENSE_RANK() OVER (PARTITION BY emp_no ORDER BY to_date DESC) AS t_rank
        FROM 
            salaries
    ) t5
    WHERE 
        t_rank = 1 and to_date='9999-01-01' #每个在职员工最晚的工资记录
) t6

ON 
    t4.emp_no = t6.emp_no

)t7

order by growth
;


全部评论

相关推荐

1个小白:可以考虑投一下字节
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-31 04:00
神哥不得了:首先我就是在成都,成都的互联网格外的卷,如果是凭现在的简历的话很难找到大厂,建议再添加一个高质量的项目上去,另外专业技能的话最好是超过每一条的一半
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务