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

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

题目链接:牛客网

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

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`));

解法一
按照题目中的描述,员工入职日期都不是同一天,那么直接按照hire_date列降序排列的结果,从第三行开始取出一行数据即可。

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

解法二
解法一有它的局限性,当员工的入职日期有重复时,获取的结果不一定是正确的。这时可以先筛选出入职时间第三晚的日期,然后找出日期等于筛选日期的员工信息。

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

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113186501