我在那裏的客戶已經在某些情況下,這是造成問題被多次添加一個龐大的客戶數據庫。我可以使用查詢來標識完全匹配的記錄,但某些記錄具有輕微變化,如不同的地址或給定名稱。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