题目(来源于牛客网

题目描述
查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天
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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44271578/article/details/107313237