题解 | 查找入职员工时间升序排名的情况下的倒数第三的员工所有信息

查找入职员工时间升序排名的情况下的倒数第三的员工所有信息

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

  select 
    emp_no,
    birth_date,
    first_name,
    last_name,
    gender,
    hire_date
from(
    select
    emp_no,
    birth_date,
    first_name,
    last_name,
    gender,
    hire_date,
    dense_rank() over (
        order by  hire_date desc
    ) as drk
from
    employees)x
    where drk=3 
    order by emp_no asc;

题目要求“入职员工时间升序排名的情况下倒数第三的员工所有信息”,升序排名的情况下即第一名是最早入职的员工,倒数第三就是最晚入职的倒数第三名即"按入职时间升序排名最晚入职时间倒数第三名"--------------->其实就相当于"按入职时间降序(排名最晚入职时间在前)正数第三名"

ASC (升序)

很难直接定位,需要算数值

DESC (降序)

直接找 drk=3

1. 为什么 order by hire_date desc 不用转换?

因为 hire_date 字段的类型是 DATE(日期类型),数据库内置了日期比较规则,数据库看到 DATE 类型,会自动按时间先后排序,完全不用你转字符串!

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

全站热榜

更多

创作者周榜

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