这是SQL今日一题的第17篇文章
题目描述1
查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)
用到salaries表
salaries表
方法1
select MAX(salary) - MIN(salary) as growth
from salaries
where emp_no = 10001
1、where子句给定限定条件,是10001号员工
- where emp_no = 10001
2、用最大的薪资减去最小薪资得到涨幅
- MAX(salary) - MIN(salary)
这样的解法不是很严谨,因为默认了该员工现在是涨薪的而不是降薪,所以才能用最大值减去最小值求涨幅,但如果该员工现在被降薪了,那么这个思路就不对了。
方法2
SELECT (
(SELECT salary FROM salaries WHERE emp_no = 10001 ORDER BY to_date DESC LIMIT 1) -
(SELECT salary FROM salaries WHERE emp_no