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
    )

相关文章
|
4月前
|
SQL
leetcode-SQL-1407. 排名靠前的旅行者
leetcode-SQL-1407. 排名靠前的旅行者
31 1
|
4月前
|
关系型数据库 MySQL
leetcode-SQL-1965.丢失信息的雇员
leetcode-SQL-1965.丢失信息的雇员
20 0
|
4月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_105 排名靠前的旅行者
「SQL面试题库」 No_105 排名靠前的旅行者
|
4月前
|
SQL 数据挖掘 关系型数据库
「SQL面试题库」 No_8 分数排名
「SQL面试题库」 No_8 分数排名
|
5月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day31】腾讯QQ(二)按类别统计QQ号相关信息
每天一道大厂SQL题【Day31】腾讯QQ(二)按类别统计QQ号相关信息
45 0
|
5月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
|
5月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
59 0
|
5月前
|
SQL 分布式计算 MaxCompute
这些警告信息是MaxCompute在执行SQL查询时生成的
这些警告信息是MaxCompute在执行SQL查询时生成的
36 3
|
5月前
|
SQL 消息中间件 缓存
Flink SQL中使用DEBUG模式来输出详细的日志信息,
Flink SQL中使用DEBUG模式来输出详细的日志信息,
140 0
|
6月前
|
SQL 分布式计算 调度
在MaxCompute中,你可以通过SQL语句来查询和导出实例的运行状态和时间等信息
在MaxCompute中,你可以通过SQL语句来查询和导出实例的运行状态和时间等信息
57 5