select *
from employees
where hire_date =(
select hire_date
from employees
group by hire_date order by hire_date desc
limit 2,1
);
难点在于如何处理入职时间一样的?,如果单纯只是排序再取第三名,那么就会遗漏入职时间一样的,有什么方法处理呢?
可以先使用group by 对hire_date进行分区,这样就把一样的放到一起去了,每个大区外面都是不一样的入职日期,再针对进行分区分组后的唯一hire_date值进行排序,可以避免出现“相同入职时间占排序位置的情况”。

京公网安备 11010502036488号