题解 | #查找入职员工时间排名倒数第三的员工所有信息#

查找入职员工时间排名倒数第三的员工所有信息

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

先上代码:
select *
from employees
order by hire_date desc
limit 2,1

一般人可能思路和我差不多,都是按照orderby和limit的思路去写。先说一下limit单独使用以及limit和offset组合使用的差距:

  • 当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量。
  • 当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量。

实际上这个写法存在一个bug就是可能入职时间相同的员工可能不止一人。
推荐写法如下:
select *
from employees
where hire_date =
(select distinct hire_date
from employees
order by hire_date desc
limit 1 offset 2)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-23 14:13
这是聊岔撇了吗,相同的话问了两遍
吴offer选手:上下文切换这一块
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:36
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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