先查询出最多工资的薪资,小于最多工资的最大薪资就是第二多的薪资。 所以查询出来的薪资做等值比较得出薪资第二的人的数据,本题主要说不能使用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)
)