题解 | #查找最晚入职员工的所有信息#
查找最晚入职员工的所有信息
https://www.nowcoder.com/practice/218ae58dfdcd4af195fff264e062138f
select em.emp_no,em.birth_date,em.first_name,em.last_name,em.gender,em.hire_date FROM( select *, rank()over(order by hire_date desc) rk from employees ) em WHERE rk=1
我看了一下大家的答案,感觉都有局限性。因为最后一天入职的人数可能不唯一,有可能在同一天入职多人,所以直接用order by + limit 语句有很大的局限性。此时用 窗口函数 + 子查询 便是最优解,rank()为跳跃式排名,保证了排名可以出现并列,即解决了可能同一天出现多人入职的情况。