sql题解 | 不通过order by 查询薪资第二多的员工
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
先查询出最多工资的薪资,小于最多工资的最大薪资就是第二多的薪资。 所以查询出来的薪资做等值比较得出薪资第二的人的数据,本题主要说不能使用order by的情况下如何做排行
select
b.emp_no,
b.salary,
a.last_name,
a.first_name
from
employees a
inner join salaries b on a.emp_no = b.emp_no
where
b.salary = (
select
max(salary)
from
salaries
where
salary <
(select
max(salary)
from
salaries)
)