在日常开发工作中常会遇到要对数据库中的重复数据做筛选的操作需求,可以考虑使用排序函数(ROW_NUMBER())
第一种写法:row_number() over(partition by 一个或多个分组列 order by 一个或多个排序列 asc/desc) as 别名 //如果不写asc/desc的话,默认为asc
第二种写法:row_number() over(distribute by 一个或多个分组列 sort by 一个或多个排序列 asc/desc) as 别名
结合实际sql:
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ... DESC) AS row_num
FROM table
) t
WHERE row_num = 1;