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

简介: SQL 查找入职员工时间排名倒数第三的员工所有信息



题目

有一个员工employees表简况如下:

请你查找employees里入职员工时间排名倒数第三的员工所有信息,以上例子输出如下:

思路:

(1)首先需要加distinct去重。

假设 5-23(入职最晚日期)入职的有a,b,c 3人;

       5-22(入职第二晚日期)入职的有d,e 2人;

       5-21(入职倒数第三晚)入职的有f,g,h 3人;

       5-21前入职的若干...

若 不加distinct去重,那么按照日期倒序,limit 2,1(从倒数第2行开始,取一条数据)的查询结果为 5-23

加了distinct去重,会按入职日期进行分组,多个相同入职日期会分为一组,这样limit 2,1的结果即为 5-21。

(2)外层的where条件中根据子查询查出的倒数第三晚入职的日期,就能查询出符合条件的员工信息

子查询获取第三个最新的入职日期:

在子查询中,通过 SELECT DISTINCT hire_date FROM employees ORDER BY hire_date DESC LIMIT 2, 1,获取了按照入职日期降序排列的第三个不同的日期。LIMIT 2, 1 表示跳过前两个日期,然后选择第一个,即第三个最新的日期。

主查询根据入职日期获取员工信息:

在主查询中,使用 WHERE hire_date = (子查询) 条件,选择入职日期等于子查询中获取的第三个最新日期的员工信息。

代码:

select
    *
from
    employees
where
    hire_date = (
        select distinct
            hire_date
        from
            employees
        order by
            hire_date desc
        limit
            2, 1
    )

相关文章
|
9天前
|
SQL
leetcode-SQL-1407. 排名靠前的旅行者
leetcode-SQL-1407. 排名靠前的旅行者
33 1
|
1天前
|
SQL 存储 安全
第七章 SQL错误信息 - SQL错误代码 -400 到 -500
第七章 SQL错误信息 - SQL错误代码 -400 到 -500
11 1
|
1天前
|
SQL 存储 数据库
第六章 SQL错误信息 - SQL错误代码 -200 到 -399
第六章 SQL错误信息 - SQL错误代码 -200 到 -399
8 1
|
1天前
|
SQL JSON Java
第五章 SQL错误信息 - SQL错误代码 -100 到 -199
第五章 SQL错误信息 - SQL错误代码 -100 到 -199
5 0
|
1天前
|
SQL 数据库连接 索引
第四章 SQL错误信息 - SQL错误代码 -1 到 -99
第四章 SQL错误信息 - SQL错误代码 -1 到 -99
8 0
|
1天前
|
SQL 存储 Java
第三章 SQL错误信息
第三章 SQL错误信息
9 1
|
9天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之DataWorks中,填写ODPS SQL任务中的参数和分区信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
30 0
|
9天前
|
关系型数据库 MySQL
leetcode-SQL-1965.丢失信息的雇员
leetcode-SQL-1965.丢失信息的雇员
22 0
|
9天前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_105 排名靠前的旅行者
「SQL面试题库」 No_105 排名靠前的旅行者
|
9天前
|
SQL 数据挖掘 关系型数据库
「SQL面试题库」 No_8 分数排名
「SQL面试题库」 No_8 分数排名