一级目录
假设表名为t,字段a,b,c,想要a,b,c去重的效果
1、distinct
最直接的去重关键字
select distinct a,b,c from t
2、group by
分组去重
select a,b,c from t group by a,b,c
3、union
效果为上下两段sql的结果去重合并
select a,b,c from t
union
select a,b,c from t where 1=0
4、row_number() over()
根据开窗排序去重,over里的parition by类似于group by
select a,b,c from
(select a,b,c,row_number() over(partition by a,b,c order by a) as rn from t) t1
where rn = 1
主要的几种方式如上,目前主流的数据库都支持,如果存在建议和疑问,欢迎沟通