首页 > 其他 > 详细

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

时间:2019-12-09 01:09:08      阅读:106      评论:0      收藏:0      [点我收藏+]

技术分享图片

技术分享图片

 limit 1,1  从当前选择的第二个开始,选取1条记录

 

 

当然上述解答还不够严谨

因为如果薪水第一多有多名员工,那么用  limit 1, 1  取出来的就不一定是薪水第二的员工了

使用嵌套查询,首先找出排第二的薪水是多少,使用group by进行分组,并且限制时间,必须是当前薪水,然后使用挑选出来的薪水

去查找符合条件的记录。

技术分享图片

 

 

然而,第二次的解答仍然不够优秀!

 因为在子查询中我们返回的是薪水,在外层查询使用薪水去查询一条记录,如果表中的数据量很小的话,

查询速度会很快,但是,当数据量非常大的时候就非常麻烦了。

如图,令子查询返回员工号,因为emp_no是主键,所以这样会更好的优化性能。

技术分享图片

 

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

原文:https://www.cnblogs.com/jiguang321/p/12008406.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!