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
本文解析了如何使用SQL中的DENSE_RANK()窗口函数解决实际问题,通过调整排序方式找到employees表中入职时间倒数第三的员工详细信息,包括错误修正和反思过程。
999

被折叠的 条评论
为什么被折叠?



