• SQL > supprimer des doublons

      AFFICHER LES DOUBLONS

      SELECT COUNT(*) AS nbr_doublon, col_1, col_2, col_3
      FROM nom_table
      GROUP BY col_1, col_2, col_3
      HAVING COUNT(*) > 1
      ORDER BY nbr_doublon DESC

       

       

      EXPLICATIONS :

       

      nbr_doublon variable pour exploiter les doublons

       

      col_x colonnes qui servent de références pour trouver les doublons

       

      HAVING COUNT(*) > 1 n’aficher que les doublons

       

      ORDER BY nbr_doublon DESC pour afficher les doublons par ordre décroissants

      SUPPRIME LES DOUBLONS

      supprimer les lignes en trop qui possèdent les même données dans les colonnes col_1 à col_3:

       

      DELETE nom_table FROM nom_table
      LEFT OUTER JOIN (
         SELECT MIN(col_ID) as id, col_1, col_2
         FROM nom_table
         GROUP BY col_1, col_2
      ) as t1
      ON nom_table.col_ID = t1.id
      WHERE t1.id IS NULL

       

       

      EXPLICATIONS :

       

      col_ID nom de la colonne contenant les ID (clés primaires)

       

      col_x colonnes qui servent de références pour trouver les doublons

       

      > La requête va conserver la ligne avec l’ID le plus petit grâce à MIN(). Pour l’ID le plus grand : MAX().

       

      ATTENTION : Aucun champ ne doit être NULL.

 

Aucun commentaire

 

Laissez un commentaire