2016-05-04 59 views
0

我有一個近100萬行的表,並有很多重複的數據,我想從中刪除。我想知道如何做到這一點?Deduping SQL Server表

表格列爲:用戶名,專業化,dob,地址,城市,州,郵編和電話。表中沒有任何唯一的ID。

表中的行可能有相似的名稱,地址。我必須找出所有這些相似的匹配並刪除重複。

樣本數據:

Name    Specialisation  DOB  Address  Country 
Alexande Loord Arts    7/2/1993 #25, Fairfax US 
Alexander L  Arts    7/2/1993 #25,Fairfax,VA US 

在上述情況下,兩個記錄是相同的,但僅該名稱是不同的形式。我已經確定了這些情況,並通過刪除重複項爲每個用戶提供最大可能的信息來提高我的數據質量。

如何重複此操作,併爲每個用戶在表格中留下1個唯一條目(行)?

非常感謝大家的回覆。

回答

2

可能最簡單的方法是截斷表並重新填充它。如果你沒有唯一鍵,那麼你沒有標識列所以下面應該工作:

select distinct t.* 
into temp_t 
from t; 

truncate table t; 

insert into t 
    select * 
    from temp_t; 

注:

  • 這是在我使用insert沒有幾個案例之一列的列表 - 從表中選擇列。

  • 它被截斷後,我勸你一個唯一的標識列添加到表:

    ALTER TABLE不要再增加TID INT標識的主鍵;

  • 在進行此類操作之前,請始終驗證數據並備份表(複製內容)。

+0

解決方案適用於重複,但問題是關於類似者。在這種情況下,第三方工具可能是合適的。 –