(简单)SQL练习2:查找入职员工时间排名倒数第三的员工所有信息

本文介绍如何使用SQL查询员工表中入职时间排名倒数第三的员工信息,涉及DISTINCT、LIMIT及子查询等知识点。

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

题目描述

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

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


考察知识点

DISTINCTLIMITORDER 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 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值