发布时间:2025-12-11 00:07:39 浏览次数:14
SQL数据去重的方法有以下几种:
使用DISTINCT关键字:使用select DISTINCT语句来查询数据,可以去除重复的行。例如:select DISTINCT column1, column2 FROM table_name;
使用GROUP BY和HAVING子句:根据某个或多个列进行分组,并使用HAVING子句来筛选出不重复的数据。例如:select column1, column2 FROM table_name GROUP BY column1, column2 HAVING COUNT(*) = 1;
使用ROW_NUMBER()和CTE(公共表表达式):使用ROW_NUMBER()函数给每一行数据分配一个唯一的序号,然后使用CTE将这些序号为1的行筛选出来。例如:
WITH CTE AS (
select column1, column2, ROW_NUMBER() OVER(PARTITION BY column1, column2 ORDER BY column1, column2) AS rn
FROM table_name
)
select column1, column2
FROM CTE
WHERE rn = 1;
使用EXISTS子查询:使用子查询来判断是否存在重复的数据,然后进行筛选。例如:
select column1, column2
FROM table_name t1
WHERE NOT EXISTS (
select 1
FROM table_name t2
WHERE t1.column1 = t2.column1
AND t1.column2 = t2.column2
AND t1.id != t2.id
);