题解 | #不使用排序获取薪水第二多的员工信息#
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
select s.emp_no, s.salary, e.last_name, e.first_name from salaries s join employees e on s.emp_no = e.emp_no where s.salary = ( select s1.salary from salaries s1 join salaries s2 on s1.salary <= s2.salary group by s1.salary having count(distinct s2.salary) = 2 );
使用自联结:s1.salaries <= s2.salaries时,排名第n的薪水会有n个s2.salaries大于s1.salaries,再根据s1.salaries分组后统计个数即可得到排名。