题解 | #筛选限定昵称成就值活跃日期的用户#
查找入职员工时间排名倒数第三的员工所有信息
http://www.nowcoder.com/practice/ec1ca44c62c14ceb990c3c40def1ec6c
这道题的关键是如何选出倒数第三的员工,且避开出现同时间员工的情况
解决方法是:造表
因为怕存在相同时间入职的员工,因此我们使用dense_rank() over(order by hire_date) as ranking 来排名入职时间,记住,排名倒数第三,意思是入职时间近的人;
因为不知道有多少员工,因此我们使用降序排名,然后直接 where ranking = 3 dense_rank() over(order by hire_date desc) as ranking
综上要点所述
select emp_no,birth_date,first_name,last_name,gender,hire_date
from ( select emp_no, birth_date,first_name, last_name,gender, hire_date, dense_rank() over (order by hire_date desc) as ranking from employees ) t where ranking = 3