# 查询出排名倒数第三的入职时间
select hire_date
from (
    select hire_date, dense_rank()over(order by hire_date desc) rnk
    from employees
) t1
where rnk = 3
limit 1

# 查询入职员工时间排名倒数第三的员工所有信息
select *
from employees
where hire_date = (
    select hire_date
    from (
        select hire_date, dense_rank()over(order by hire_date desc) rnk
        from employees
    ) t1
    where rnk = 3
    limit 1
);

使用dense_rank()来获取不跳跃排名;注意rank()会跳跃排名,比如有两个并列第一,那么数值上的第二名会标号为3

【其他思路】

先对所有hire_date去重排名后,使用limit m,n语法跳取出入职时间倒数第三的对应时间,而后再查询对应该入职时间的员工信息(可能不止一个)