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

情形一:最晚入职员工只有一人

order by排序+limit

解题比较简单,根据hire_date逆向排序后,输出第一行即可

select *
from employees
order by hire_date desc
limit 1

情形二:最晚入职员工不止一人

方法一:可以根据开窗函数 rank() over()

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, rank() over(order by hire_date desc) as r
from employees) tmp
where r = 1

方法二:join

select t1.*
from employees t1 join
(select max(hire_date) as max_date
 from employees) t2 
 on t1.hire_date = t2.dire_date
#SQL练习#
全部评论
不好意思,join的条件写错了,是 t1.hire_date = t2.max_date
点赞 回复
分享
发布于 2023-03-15 19:20 广东

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务