题目要求:查找薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不能使用order by完成。
个人思路:与之前的题目相同,需考虑多人领取相同金额的薪水。这里不能用order by,可以考虑用max套用max查询出第二高的薪水。
代码:
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 max(salary) as salary from salaries where salary < (select max(salary) from salaries) )
运行时间:40ms, 占用内存5428KB。应该再考虑怎么再优化一下。