题目
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
一个员工表employees简况如下:
有一个薪水表salaries简况如下:
请你查找薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不能使用order by完成,以上例子输出为:
思路
1、不能使用order by,窗口函数rank() over()不能在此使用
2、考虑到薪水可能有相同的,要先找到第二多的薪水,在查找emp_no等其他信息
select e.emp_no,s.salary,e.last_name,e.first_name
FROM employees e LEFT JOIN salaries s
on e.emp_no=s.emp_no
where s.salary=(select max(salary)
from salaries
where salary<>(select max(salary) from salaries));