SQL筛选重复数据的方法有多种,下面列举了几种常用的方法:
- 使用GROUP BY和HAVING子句:使用GROUP BY子句按照重复列进行分组,然后使用HAVING子句筛选出重复的组。
SELECT column1, column2, COUNT(*) as count FROM table GROUP BY column1, column2 HAVING COUNT(*) > 1;
- 使用子查询和IN关键字:使用子查询查找重复的值,然后使用IN关键字筛选出包含重复值的记录。
SELECT column1, column2 FROM table WHERE column2 IN ( SELECT column2 FROM table GROUP BY column2 HAVING COUNT(*) > 1 );
- 使用窗口函数ROW_NUMBER():使用ROW_NUMBER()函数为每条记录添加一个序号,然后筛选出序号大于1的记录。
WITH cte AS ( SELECT column1, column2, ROW_NUMBER() OVER(PARTITION BY column1, column2 ORDER BY column1) AS rn FROM table ) SELECT column1, column2 FROM cte WHERE rn > 1;
以上是几种常用的方法,根据具体情况选择合适的方法进行筛选。