select emp_no,birth_date,first_name,last_name,gender,hire_date
from
(
select *,dense_rank() over(order by hire_date desc) rk
from employees
) a
where rk = 3

这一题注意的就是,适应dense_rank,不要用rank,因为使用rank会跳(dense是密集的意思)

例如

name sorce
 a    100
 a     80
 b     78
 c     70
select *,rank() over(order by ) rk from table 
如下:
name sorce  rk
 a    100    1
 a     80    1
 b     78    3
 c     70    4
 而使用dense_rank呢
 select *,dense_rank() over(order by ) rk from table 
 name sorce  rk
 a    100    1
 a     80    1
 b     78    2
 c     70    3

这样where rk = 3时,取值就完全不一样了