首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最快的"Get Duplicates“SQL脚本

最快的"Get Duplicates“SQL脚本
EN

Stack Overflow用户
提问于 2008-10-13 09:36:18
回答 5查看 37.7K关注 0票数 43

下面是一个在具有数十万条记录的数据集中获取重复项的快速SQL示例。我通常使用类似这样的东西:

代码语言:javascript
复制
SELECT afield1, afield2 FROM afile a 
WHERE 1 < (SELECT count(afield1) FROM afile b WHERE a.afield1 = b.afield1);

但这是相当慢的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-10-13 09:38:28

这是更直接的方法:

代码语言:javascript
复制
select afield1,count(afield1) from atable 
group by afield1 having count(afield1) > 1
票数 78
EN

Stack Overflow用户

发布于 2008-10-13 09:39:12

您可以尝试:

代码语言:javascript
复制
select afield1, afield2 from afile a
where afield1 in
( select afield1
  from afile
  group by afield1
  having count(*) > 1
);
票数 16
EN

Stack Overflow用户

发布于 2008-10-13 12:50:36

上周也提出了类似的问题。这里有一些很好的答案。

SQL to find duplicate entries (within a group)

在这个问题中,OP对表(文件)中的所有列(字段)感兴趣,但是如果行具有相同的键值(afield1),则它们属于同一组。

答案有三种:

where子句中的子查询,就像这里的一些其他答案一样。

表和被视为表的组之间的内部连接(我的答案)

和分析查询(这对我来说是新的东西)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/197111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档