当前位置: 代码迷 >> 综合 >> SQL2 查找入职员工时间排名倒数第三的员工所有信息 SQL2 查找入职员工时间排名倒数第三的员工所有信息
  详细解决方案

SQL2 查找入职员工时间排名倒数第三的员工所有信息 SQL2 查找入职员工时间排名倒数第三的员工所有信息

热度:31   发布时间:2023-12-15 04:41:34.0

文章目录

  • 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

反思:使用排序窗口函数作为派生列用于外表的条件判断