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

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

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

开窗函数

select emp_no,birth_date,first_name,last_name,gender,hire_date
from(
select *,
row_number() over(order by hire_date desc )as n
from employees
) a
where n=3
数据分析阿宇君的SQL题解 文章被收录于专栏

数据分析的SQL题目

全部评论
应该用rank()合理点,同一天可能有多个员工哦~
1 回复 分享
发布于 2020-11-25 21:51
答主实际跑过吗? 用dense_rank()吧,用row_number()是很明显错误的
10 回复 分享
发布于 2021-03-20 23:08
dense_rank()好一些吧,可能存在同一天多人入职
6 回复 分享
发布于 2021-08-24 20:56
使用开窗函数应避免使用rank 作为排序字段名称。容易报错
4 回复 分享
发布于 2021-01-21 23:46
我也是这么写的,但是我用的dens_rank()over(),不通过,错了
2 回复 分享
发布于 2023-02-21 16:39 广东
as 使用rank报错了
1 回复 分享
发布于 2021-02-04 23:33
编译报错了 希望有空更新一下 不要误人子弟
1 回复 分享
发布于 2021-04-05 13:43
我理解应该用dense_number row_number是高考排名,出现重复值时会占位,所以存在没有第三名的情况,比如11145
1 回复 分享
发布于 2023-04-23 12:40 浙江
报错了呀 编译不过去
点赞 回复 分享
发布于 2021-03-16 11:11
说不行的肯定没用MYSQL,建议多试再来评论。
点赞 回复 分享
发布于 2021-07-22 10:20
as 后面少了个n
点赞 回复 分享
发布于 2021-07-29 14:52
row_number() over () MySQL 有这个函数吗?
点赞 回复 分享
发布于 2021-09-15 12:32
错了哈,这个是oracle的写法,MySQL不行
点赞 回复 分享
发布于 2021-11-03 22:56
有重复数据的时候,这个就不适用了
点赞 回复 分享
发布于 2022-03-26 16:11
为何第一行不能用*呢
点赞 回复 分享
发布于 2022-05-06 15:47
mysql 5.7以下没有 row_number
点赞 回复 分享
发布于 2022-12-02 20:38 广东
出现重复值时会占位的是rank()吧
点赞 回复 分享
发布于 01-15 21:29 北京

相关推荐

小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
牛客618272644号:佬携程工作怎么样,强度大吗
点赞 评论 收藏
分享
评论
55
1
分享
牛客网
牛客企业服务