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

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

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

select emp_no,birth_date,first_name,last_name,gender,hire_date
from
(
select *,dense_rank() over(order by hire_date desc) rk
from employees
) a
where rk = 3

这一题注意的就是,适应dense_rank,不要用rank,因为使用rank会跳(dense是密集的意思)

例如

name sorce
 a    100
 a     80
 b     78
 c     70
select *,rank() over(order by ) rk from table 
如下:
name sorce  rk
 a    100    1
 a     80    1
 b     78    3
 c     70    4
 而使用dense_rank呢
 select *,dense_rank() over(order by ) rk from table 
 name sorce  rk
 a    100    1
 a     80    1
 b     78    2
 c     70    3

这样where rk = 3时,取值就完全不一样了

全部评论

相关推荐

AAA专业长城贴瓷砖刘大爷:这样的简历我会直接丢进垃圾桶,花里胡哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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