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.
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