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()是很明显错误的
9
送花
回复
分享
发布于 2021-03-20 23:08
滴滴
校招火热招聘中
官网直投
dense_rank()好一些吧,可能存在同一天多人入职
5
送花
回复
分享
发布于 2021-08-24 20:56
使用开窗函数应避免使用rank 作为排序字段名称。容易报错
3
送花
回复
分享
发布于 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 北京

相关推荐

53 1 评论
分享
牛客网
牛客企业服务