我在那里的客户已经在某些情况下,这是造成问题被多次添加一个庞大的客户数据库。我可以使用查询来标识完全匹配的记录,但某些记录具有轻微变化,如不同的地址或给定名称。SQL - 查找重复的领域和计算多少场匹配
我想查询在10个领域,一些记录将匹配所有10这显然是一个重复的,尽管其他领域可能只匹配5场与另一个记录,需要进一步调查。因此,我想创建一个结果集,其中包含有多少个字段已匹配的字段。基本上要创建一个可能的引擎盖评级,结果是实际匹配。所有10个将是一个明确的重复,但5只会是一个可能的重复。
一些只会匹配邮编和名字这一般可以打折。
事情是这样的帮助,但因为它只返回其中明确匹配所有3条记录它不是真的有用,由于数据的绝对数量。
SELECT field1,field2,field3, count(*)
FROM table_name
GROUP BY field1,field2,field3
HAVING count(*) > 1
有很多方法可以做到这一点。您可以执行常规加入标准,然后为每个列使用一个案例表达式。情况下,当table1.field1 = table2.field2然后1结束...重复每列。然后,您可以轻松分辨出匹配的列数。 – 2014-09-25 19:59:07
潜在客户的数量有多大,数以百万计? – ErstwhileIII 2014-09-25 20:05:52
需要说明的是:您希望将每行与其他所有行进行比较,以确定有多少列是完全匹配的“计数”?你在谈论一个交叉连接(主键不一样,因为那些将始终是完整的匹配),如果有一千多行,这将非常昂贵。 – pmbAustin 2014-09-25 20:07:58