牛客网 SQL实战 2 查找入职员工时间排名倒数第三的员工所有信息

1. 题目描述

1.1. Time Limit

C/C++ 1秒,其他语言2秒

1.2. Memory Limit

C/C++ 32M,其他语言64M

1.3. Problem Description

查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天

 CREATE TABLE `employees` (

 `emp_no` int(11) NOT NULL, -- '员工编号'

 `birth_date` date NOT NULL,

 `first_name` varchar(14) NOT NULL,

 `last_name` varchar(16) NOT NULL,

 `gender` char(1) NOT NULL,

 `hire_date` date NOT NULL,

 PRIMARY KEY (`emp_no`));

1.4. Output

emp_nobirth_datefirst_namelast_namegenderhire_date
100051955-01-21KyoichiMaliniakM1989-09-12

1.5. Source

牛客网 SQL实战 2 查找入职员工时间排名倒数第三的员工所有信息

2. 题解

可以使用子查询,也可以先排序再取第三个。

3. 代码

使用子查询,能够取出入职日期倒数第三的多个员工。

SELECT *
FROM `employees`
WHERE hire_date =
(SELECT DISTINCT hire_date
FROM `employees`
ORDER BY hire_date DESC
LIMIT 2, 1);

使用排序和LIMIT,可以取出唯一一个。

SELECT *
FROM `employees`
ORDER BY hire_date DESC
LIMIT 2, 1;

OFFSET 表示忽略前2个。

SELECT *
FROM `employees`
ORDER BY hire_date DESC
LIMIT 1 OFFSET 2;

联系邮箱:curren_wong@163.com

CSDNhttps://me.csdn.net/qq_41729780

知乎https://zhuanlan.zhihu.com/c_1225417532351741952

公众号复杂网络与机器学习

欢迎关注/转载,有问题欢迎通过邮箱交流。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值