第一种方式over(partition by) select t.* from (
select a.*, row_number() over(partition by 需要分组的字段 order by 更新时间 desc) rw
from 表 a) t where t.rw = 1; 第二种方式MAX(日期) select * from 表 t1 inner join (
SELECT max(create_date) as create_date2, 需要分组的字段mark
FROM 表 group by mark
) t2 on t1.create_date=t2.create_date2 and t1.mark=t2.mark 第一种在数据量比较大的时候很慢,第二种反而更快,建议选择第二种 |