SQL 17) -dense_rank() 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
http://www.nowcoder.com/questionTerminal/8d2c290cc4e24403b98ca82ce45d04db
方法1)dense_rank()over() 求工资排名第二的记录
SELECT a.emp_no, a.salary -- 再套一层查询 FROM( SELECT emp_no, salary, dense_rank()over(ORDER BY salary DESC)rank_num FROM salaries WHERE to_date = '9999-01-01')a WHERE a.rank_num = 2;
- 注意外面要再套一层查询
方法2)不那么严谨但是能过的ORDER BY + LIMIT + OFFSET
SELECT emp_no, salary FROM salaries WHERE to_date = '9999-01-01' ORDER BY salary DESC LIMIT 1 OFFSET 1;
- 这种情况下如果同一工资有多条记录不适用