SQL练习17:获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
题目链接:牛客网
题目描述
获取当前(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
,子查询中先查询薪水第二高的salary
,在父查询中查找薪资与其相等的即可。
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)