牛客网 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;
联系邮箱:curren_wong@163.com
CSDN:https://me.csdn.net/qq_41729780
知乎:https://zhuanlan.zhihu.com/c_1225417532351741952
公众号:复杂网络与机器学习
欢迎关注/转载,有问题欢迎通过邮箱交流。