下面是一个在具有数十万条记录的数据集中获取重复项的快速SQL示例。我通常使用类似这样的东西:
SELECT afield1, afield2 FROM afile a
WHERE 1 < (SELECT count(afield1) FROM afile b WHERE a.afield1 = b.afield1);但这是相当慢的。
发布于 2008-10-13 09:38:28
这是更直接的方法:
select afield1,count(afield1) from atable
group by afield1 having count(afield1) > 1发布于 2008-10-13 09:39:12
您可以尝试:
select afield1, afield2 from afile a
where afield1 in
( select afield1
from afile
group by afield1
having count(*) > 1
);发布于 2008-10-13 12:50:36
上周也提出了类似的问题。这里有一些很好的答案。
SQL to find duplicate entries (within a group)
在这个问题中,OP对表(文件)中的所有列(字段)感兴趣,但是如果行具有相同的键值(afield1),则它们属于同一组。
答案有三种:
where子句中的子查询,就像这里的一些其他答案一样。
表和被视为表的组之间的内部连接(我的答案)
和分析查询(这对我来说是新的东西)。
https://stackoverflow.com/questions/197111
复制相似问题