题目(来源于牛客网)
题目描述
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
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`));
SELECT *
FROM EMPLOYEES
ORDER BY HIRE_DATE DESC
LIMIT 2,1
LIMIT m,n:从第m条取n条数据
LIMIT n:默认从第0条取n条数据。(LIMIT 0,n);
如果出现最晚进入公司的日期相同,则:
select * from employees
where hire_date = (
select distinct hire_date
from employees
order by hire_date desc
limit 2,1
)
- 使用distinct将重复的日期去掉,留下的就为入职时间倒数第3的时间。
- 外层where就会根据返回的条件查询符合条件的员工数据。
版权声明:本文为weixin_44271578原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。