题目:查找入职员工时间排名倒数第三的员工所有信息
解题思路: 不用管倒数第三入职的员工有多少,知道入职倒数第三的时间即可直接匹配查询,怎么知道? 利用order by降序排序,limit获取。
注意的是: 任意入职次序员工的入职时间也可能一样,比如: 最晚入职的是5-5,有a、b员工 倒数第二入职的是5-4,有c、d员工 倒数第三入职的是5-3,有e、f员工;
如果队列倒序limit 2, 1 ,代表从第三条开始查询一条数据,但是这里的第三条是c员工的入职时间,而不是e或f员工入职时间,所以我们要去重distinct
distinct会在limit前去重,这时就能获取倒数第三入职的时间了。
limit n,从索引0开始,查询n条 limit i, n 从索引i开始,查询n条 limit x offset y,x要查询x条,跳过y条
select * from employees where hire_date = (select distinct hire_date from employees order by hire_date desc limit 2, 1);
select * from employees where hire_date = (select distinct hire_date from employees order by hire_date desc limit 1 offset 2)