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

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

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

题目要求“自入职以来的薪资涨幅情况”,这句话怎么理解?是自入职以来的最高工资 减去 最低工资?还是目前的工资 减去刚开始入职时的工资?

第一次提交:员工自入职以来的工资最大值减去工资最小值未通过✖

SELECT emp_no, max(salary) - min(salary) as growth
FROM salaries
WHERE emp_no in (
    SELECT emp_no
    FROM salaries
    WHERE to_date = '9999-01-01'
)
GROUP BY emp_no
ORDER BY growth

第二次提交:员工目前薪资 减去 刚入职时的薪资通过✔

SELECT
    start.emp_no,
    ( now.salary - start.salary ) as growth
FROM
    (
        SELECT 
            e.emp_no,
            s.salary
        FROM 
            employees e
        JOIN salaries s ON e.hire_date = s.from_date
    ) as start
JOIN (
    SELECT 
        emp_no, 
        salary
    FROM 
        salaries
    WHERE 
        to_date = '9999-01-01'
) as now ON start.emp_no = now.emp_no
ORDER BY growth

全部评论

相关推荐

05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务