题目描述
查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
解答:
最近的工资减去首次工资,即为入职以来的工资涨幅
select (
(select salary from salaries where emp_no = 10001 order by to_date desc limit 0,1) -
(select salary from salaries where emp_no = 10001 order by to_date asc limit 0,1)
) as growth
工资一直在涨的话,也可以用最大工资减去最小工资
select(max(salary)-min(salary)) as growth
from salaries where emp_no = '10001'