1.使用 DISTINCT 关键词
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
语法:
SELECT DISTINCT 列名称 FROM 表名称
其中的一种使用方式:
select t.a A,count(distinct t.b) B
from table_name t
group by t.a
2.使用row_number() over (partition by col1 order by col2)
row_number() over (partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
select t.*
from (
select a.*,
row_number() over(partition by a.col1 order by a.col2 desc) rn
from table_name a) t
where t.rn = 1
思路:
通过col1字段分组后再以col2字段组内降序排列并添加序号,然后再查询出组内序号等于1的数据实现去重操作。
3.使用group by
可以使用group by根据指定字段进行分组
select
col1
from
group by col1
本文介绍了三种SQL中去除重复记录的方法:使用DISTINCT关键词返回唯一不同的值;利用row_number()over函数结合partition by和order by进行分组排序去重;以及采用group by进行字段分组去重。

1933

被折叠的 条评论
为什么被折叠?



