本题难度主要是如何确定第二多,假如要确定第三多 第200多如何实现 关键在于使用自联结 比如一串数:我们如何确定这是第几大数呢?和自己链接同时筛选掉小于自己的数 如 4 4 4 4 3 4 3 2 4 3 2 1 4 3 2 1 所以只要计数 等于自己或者比自己多的数就行 同时也要了解 假如有相同的薪水 就需要去重 代码:

select a.salary from salaries a left join salaries b on a.salary<=b.salary 
group by a.salary having count(distinct b.salary)=2

alt 然后在左链接筛出第二大的数即可

select a.emp_no,b.salary,a.last_name,a.first_name from employees a left join salaries b on a.emp_no=b.emp_no
where b.salary=
(select a.salary from salaries a left join salaries b on a.salary<=b.salary 
group by a.salary having count(distinct b.salary)=2)

alt