SQL练习17:获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

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)

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113483690