2

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

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

题目:查找入职员工时间排名倒数第三的员工所有信息:
假定:所有的数据里员工入职的日期都不是同一天

方法1:子查询(最佳)
select * from employees
where hire_date =
(select distinct hire_date from employees
order by hire_date desc
limit 1 offset 2);
或:
select * from employees
where hire_date =
(select hire_date from employees
group by hire_date
order by hire_date desc
limit 1 offset 2);
补充:
若存在多人(如3人)同时在最晚的一天入职的情形,必须要考虑去重(使用distinct或者group by)
distinct和group by的执行顺序都在limit前面

方法2:使用limit或者offset关键字
select * from employees
order by hire_date desc limit 2,1;

select * from employees
order by hire_date desc limit 1 offset 2;

总结:
方法1适用于存在多个员工入职同时达到最晚一天的情况。泛用性更好。

全部评论
执行顺序补全一点呗
点赞 回复 分享
发布于 2022-03-28 18:44
很清楚
点赞 回复 分享
发布于 2021-09-24 16:07
很全面
点赞 回复 分享
发布于 2021-03-16 18:08

相关推荐

见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
98
20
分享

创作者周榜

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