row_number() over()分组排序 1.按id进行分组,time排序,取时间最大的数据 select * from (select a.* ,row_number() over(partition by id order by time desc) rn from table a) b where b.rn=1; 2.按时间排序取最大时间下的数据 select * from ( select *,row_number() over(order by date desc) as rn from tablea )a where a.rn=1