题解 | 查找在职员工自入职以来的薪水涨幅情况
查找在职员工自入职以来的薪水涨幅情况
https://www.nowcoder.com/practice/fc7344ece7294b9e98401826b94c6ea5
先创建两张表: 1.初始工资表:用hire_date = from_date作为表连接条件来筛选,工资合同开始日期为该员工进公司的第一天,即该员工在公司最初的工资 2.当前工资表:用WHERE to_date = '9999-01-01'作为条件,筛选出在职员工的最新合同 接着连接两张表,用当前工资-初始工资,即可得出在职员工的薪资涨幅总和 WITH start as ( SELECT e.emp_no, salary FROM employees e JOIN salaries s ON e.emp_no = s.emp_no AND e.hire_date = s.from_date ), current as ( SELECT emp_no, salary FROM salaries WHERE to_date = '9999-01-01' ) SELECT s.emp_no, c.salary - s.salary as growth FROM start s JOIN current c USING(emp_no) ORDER BY growth