题解 | 查找入职员工时间升序排名的情况下的倒数第三的员工所有信息
查找入职员工时间升序排名的情况下的倒数第三的员工所有信息
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 的数据

