SQL练习2:查找入职员工时间排名倒数第三的员工所有信息
题目描述
- 题目描述
- 考察知识点
- 解题思路
有一个员工 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 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。