牛客网 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_no birth_date first_name last_name gender hire_date
10005 1955-01-21 Kyoichi Maliniak M 1989-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;

联系邮箱[email protected]

扫描二维码关注公众号,回复: 11591720 查看本文章

CSDNhttps://me.csdn.net/qq_41729780

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_41729780/article/details/108016297