看了一些题友的解答,个人觉得用dense_rank 比较合适 这个题虽然是简单题,也有很多方式可以通过,但是个人觉得也得严禁点对待 题目说:可能会存在同一个日期入职的员工,所以入职员工时间排名倒数第三的员工可能不止一个。 那入职时间排名倒数第一的和倒数第二的,也有可能不止一个 所以用 rank() 就不是很合适了,因为得不到连续排名 用row_number 的更不对了 用在结尾用 Limit 的。。也不太严谨,因为无法知道倒数第一和第二名的员工有几人
select emp_no,birth_date,first_name,last_name,gender,hire_date
from (select *,
dense_rank() over(order by hire_date desc) rnk
from employees) a
where rnk = 3