使用dense_rank进行排名找到等于3的员工id,注意使用dense_rank,而不是rank。

select *
from employees
where emp_no in (
    select b.emp_no
    from (
        select dense_rank() over(order by hire_date desc) rank_, emp_no
        from employees
    ) b
    where b.rank_=3
)

使用limit,offset配合找到倒数第三的日期然后查询。注意要加`distinct`作为限定。

select *
from employees
where hire_date = (
    select distinct hire_date
    from employees
    order by hire_date desc
    limit 1 offset 2
)