1. 题目
-
题目描述
查找employees里入职员工时间排名倒数第三的员工所有信息.
注意:可能会存在同一个日期入职的员工,所以入职员工时间排名倒数第三的员工可能不止一个。 -
表格
-
所需结果
2. 题解
使排序窗口函数完成:
SELECT t.emp_no, t.birth_date, t.first_name, t.last_name, t.gender, t.hire_date
FROM (SELECT *,
DENSE_RANK() OVER(ORDER BY hire_date DESC) rk
FROM employees
) t
WHERE t.rk = 3
最初出现了两个错误:
① 错误地使用了 RANK()
,应该是DENSE_RANK()
,因为前者不连续
② 排序没有使用 DESC