文章目录
- 1. 题目
- 2. 题解
- 反思:使用排序窗口函数作为派生列用于外表的条件判断
1. 题目
-
题目来源:SQL2 查找入职员工时间排名倒数第三的员工所有信息
-
题目描述
查找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) rkFROM employees) tWHERE t.rk = 3
最初出现了两个错误:
① 错误地使用了 RANK()
,应该是DENSE_RANK()
,因为前者不连续
② 排序没有使用 DESC