题解 | 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
这题关键点在于不用order by 找到第二大的薪资,可以这样理解:
1.先找到最大的薪资 maxsalary
2.查找 < maxsalary 的最大薪资,就是第二大薪资
对应的sql:
select max(salary)
from salaries
where salary < (
select max(salary)
from salaries
)
找到这个第二大的薪资后就很简单了,直接联表查询后过滤就可以了:
select e.emp_no,
s.salary,
e.last_name,
e.first_name
from employees as e
left join salaries as s
on e.emp_no = s.emp_no
where s.salary = (
select max(salary)
from salaries
where salary < (
select max(salary)
from salaries
)
);
sql是能过的

查看12道真题和解析