题解 | 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
SELECT e.emp_no, salary, last_name, first_name
FROM employees e
JOIN salaries s
ON e.emp_no = s.emp_no
WHERE salary = (
SELECT MAX(salary)
FROM salaries
WHERE salary <(
SELECT MAX(salary)
FROM salaries
)
)
因为不能使用ORDER BY ,所以会想到无法使用RANK()OVER()等排序方式,只能使用MAX给出前几名的值,又因为第二名是除去第一名的最大值,所以只需想办法将第一名排除掉即可

查看18道真题和解析