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

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

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
            ) AS rn
        FROM
            employees
    ) t
WHERE
    t.rn = 3
ORDER BY
    t.emp_no ASC;

one:

思路:

1.入职时间升序排名倒数第三 = 入职日期降序排名第 3 名

2.题目存在同日期入职的并列情况,必须用 DENSE_RANK() → 并列不跳号,精准匹配所有同排名员工

3.按 hire_date DESC(入职日期倒序)生成排名

4.将原表 + 排名列封装为子查询,方便外层筛选,在外层查询中过滤 排名 = 3 的数据

全部评论

相关推荐

mama3925:灵神是天才,路线不适合正常人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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