情況
在Microsoft SQL Server 2008上,我有大約200萬行。 (這應該從未發生過,但我們繼承了這種情況)。一個示例如下:SQL查找重複項並指定組號
usernum. | phone | email
1 | 123 | [email protected]
2 | 123 | [email protected]
3 | 245 | [email protected]
4 | 678 | [email protected]
目的
我想創建一個表,看起來像這樣。這個想法是,如果'電話'或'電子郵件'是相同的,他們被分配相同的組號碼。
groupnum |usernum. | phone | email
1 | 1 | 123 | [email protected]
1 | 2 | 123 | [email protected]
2 | 3 | 245 | [email protected]
2 | 4 | 678 | [email protected]
試過到目前爲止
到目前爲止,我已經創建了一個簡單的Python腳本,在概念上執行以下操作:
- 每個usernum在表
- 指定一組號碼
- 還要將組號碼分配給電話或電子郵件與此行相同的所有行
- 如果usernum已經處理,請不要指定組號(否則我們會做雙倍處理)
問題
python腳本基本上必須檢查每行是否有重複的電話或電子郵件。雖然這對於大約10,000條記錄來說是完全正確的,但對於2百萬條記錄而言太慢了。我認爲這可能在t-sql中完成,這應該比使用pyodbc的python腳本快得多。
因此,最大的問題是,如何在sql中做到這一點。