用窗口函数dense_rank()来实现,不是运行最快的,是另一种思考方式。 考虑到会有相同入职日期的员工,因此选择dense_rank(),它排序的方式为,同分同序号,因此只需在where过滤条件里写降序排名为3就可以实现。 代码: select emp_no,birth_date,first_name,last_name,gender,hire_date FROM(select * , DENSE_RANK() over (order by hire_date DESC)as drk FROM employees) as a WHERE a.drk=3