当前位置:   article > 正文

SQL中查询重复记录的几种方法_sql查重復記錄

sql查重復記錄

1. 使用GROUP BY和HAVING子句:

通过使用GROUP BY子句对需要检查重复记录的字段进行分组,并使用HAVING子句筛选出出现次数大于1的分组。

  1. SELECT column1, column2, ...
  2. FROM table
  3. GROUP BY column1, column2, ...
  4. HAVING COUNT(*) > 1;

2. 使用子查询和EXISTS关键字:

通过使用子查询,检查表中是否存在与当前记录具有相同值的其他记录。

  1. SELECT column1, column2, ...
  2. FROM table t1
  3. WHERE EXISTS (
  4. SELECT 1
  5. FROM table t2
  6. WHERE t1.column1 = t2.column1
  7. AND t1.column2 = t2.column2
  8. ...
  9. AND t1.id <> t2.id
  10. );

3.使用窗口函数和CTE(公用表达式): 

使用窗口函数根据需要检查的字段进行分区,并计算每个分区中的记录数。然后使用CTE过滤出记录数大于1的分区
  1. WITH cte AS (
  2. SELECT column1, column2, ..., COUNT(*) OVER (PARTITION BY column1, column2, ...) AS count
  3. FROM table
  4. )
  5. SELECT column1, column2, ...
  6. FROM cte
  7. WHERE count > 1;

4. 使用ROW_NUMBER函数和CTE:

使用ROW_NUMBER函数为表中的每个记录分配一个行号,并筛选出行号大于1的记录。

  1. WITH cte AS (
  2. SELECT column1, column2, ..., ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY id) AS row_num
  3. FROM table
  4. )
  5. SELECT column1, column2, ...
  6. FROM cte
  7. WHERE row_num > 1;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/524706
推荐阅读
相关标签
  

闽ICP备14008679号