题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#

获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

http://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719

思路是去掉当前第一多的薪水后,在剩下的薪水里面找最多的。

一开始的做法(不太严谨):

SELECT salaries.emp_no,salary,last_name,first_name FROM employees,salaries
WHERE employees.emp_no=salaries.emp_no AND to_date='9999-01-01' AND
salary = (SELECT MAX(salary) FROM salaries WHERE salary <(SELECT MAX(salary) FROM salaries))

完善一下上面的做法,在每次select里面都加上“当前”这个条件。

SELECT salaries.emp_no,salary,last_name,first_name FROM employees,salaries
WHERE employees.emp_no=salaries.emp_no AND to_date='9999-01-01' AND 
salary = (SELECT MAX(salary) FROM salaries WHERE to_date='9999-01-01' AND 
          salary <(SELECT MAX(salary) FROM salaries WHERE to_date='9999-01-01'))
全部评论

相关推荐

头像 会员标识
08-20 18:46
门头沟学院 C++
投递华为技术有限公司等公司10个岗位
点赞 评论 收藏
分享
真的很糟糕:不一定是你的问题,当然你也可以做的更好一些,继续投相信自己一定会有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务