Détecter et éliminer les doublons sur SQL Server

Quand on travaille avec de gros volumes de données, il arrive d'avoir des doublons au niveau des tables dans la base de données.
En conséquence on pourrait avoir des exceptions dans le code et des statistiques erronées.
Dans les lignes qui suivent on vous montrera comment détecter les doublons et comment les éliminer.

duplicates

Comment gérer le problème de doublons sur SQL Server

Exemple:

ID          LastName         FirstName
----------- ---------------- --------
33          SMITH            John
34          SMITH            John
35          SMITH            John

A) Exécuter la requête de recherche de doublons sur une table donnée:

SELECT   COUNT(*) AS NombreDoublons, champ1, champ2, champ3
 FROM     [NomTable]
 GROUP BY champ1, champ2, champ3
 HAVING   COUNT(*) > 1

B) Éliminer les doublons

On procède pas la différence des valeurs du champ ID.
Dans notre exemple on va supprimer les entrées avec ID 34 et 35.

-- Solution 1
 DELETE table FROM table
 LEFT OUTER JOIN (
 SELECT MIN(id) as id, champ1, champ2, champ3
 FROM table
 GROUP BY champ1, champ2, champ3
 ) as t1
 ON table.id = t1.id
 WHERE t1.id IS NULL

Ou

-- Solution 2
 DELETE t1 
 FROM table AS t1, table AS t2
 WHERE t1.id > t2.id
 AND t1.column1 = t2.column1
 AND t1.column2 = t2.column2
 AND t1.column3 = t2.column3

 

Print Friendly, PDF & Email

Laisser un commentaire