题解 | #查找最晚入职员工的所有信息#

查找最晚入职员工的所有信息

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()为跳跃式排名,保证了排名可以出现并列,即解决了可能同一天出现多人入职的情况。

全部评论

相关推荐

09-18 20:41
门头沟学院 Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务