本文最后更新于:2022年4月9日 中午
题目描述
获取当前(to_date=’9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salary
| 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`));
|
输入描述
无
输出描述
emp_no |
salary |
10009 |
94409 |
题解
| select emp_no, salary from salaries where to_date='9999-01-01' and salary=(select salary from salaries group by salary order by salary desc limit 1,1) 或 select emp_no, salary from salaries where to_date = '9999-01-01' and salary = (select distinct salary from salaries order by salary desc limit 1,1)
|
备注:
- 需要注意多个人工资可能相同;
- 筛选第二多的工资,可以用
group by
或distinct
,但是前者效率要更高。