题目描述
有一个员工 employees 表简况如下:

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

考察知识点
DISTINCT、LIMIT、ORDER BY、子查询。
解题思路
1️⃣ 按照题目中的描述,员工入职日期都不是同一天,那么直接按照hire_date列降序排列的结果,从第三行开始取出一行数据即可。
SELECT * FROM employees
ORDER BY hire_date DESC LIMIT 2,1;
2️⃣ 解法一有它的局限性,当员工的入职日期有重复时,获取的结果不一定是正确的。这时可以先筛选出入职时间第三晚的日期,然后找出日期等于该日期的员工信息。
SELECT *
FROM employees
WHERE hire_date = (
SELECT DISTINCT hire_date
FROM employees
ORDER BY hire_date DESC -- 倒序排列
LIMIT 1 OFFSET 2 -- 从索引2(第三行)开始取
);
题目来源:牛客网-SQL数据库实战题
✅ 每日打卡,❤ 点个赞再走吧!!!❤
后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。
本文介绍如何使用SQL查询员工表中入职时间排名倒数第三的员工信息,涉及DISTINCT、LIMIT及子查询等知识点。

516





