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时,取值就完全不一样了