IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Supprimer les duplications


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut Supprimer les duplications
    Bonjour à Tous,

    J'ai des tables qui contiennent des centaines des milliers des enregistrements avec cette structure (Id, nom, titre, ville). J'ai essayé de supprimer les duplications par la création d'un nouveau table et ensuite en utilisant une requête de type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     insert into table_new... select distinct(id), nom, titre, ville from table_originale..
    mais toujours sans vain !! EN effet, j'ai remarqué que seuls des enregistrements sont supprimés alors que d'autres ne sont pas supprimé. Apparemment cette fonction distinct n'est valable que pour un nombre limité d’enregistrements mais pour des tables ayant des centaines de milliers elle n'est pas si fiable !

    Toute information sera le bien venue et Merci d'avance .

  2. #2
    Membre extrêmement actif
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Billets dans le blog
    6
    Par défaut
    il faut d'abord comprendre le principe de distinct.
    distinct evite les lignes identiques et non pas les champs.
    c'est à dire: (Id, nom, titre, ville)=ligne.
    tu peux nous donner un jeu de données afin de t'aider.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Citation Envoyé par islamov2000 Voir le message
    il faut d'abord comprendre le principe de distinct.
    distinct evite les lignes identiques et non pas les champs.
    c'est à dire: (Id, nom, titre, ville)=ligne.
    tu peux nous donner un jeu de données afin de t'aider.
    Oui je sais bien le principe. En effet elle va me retourner des enregistrements distincts n'ayant pas des doubles du clé id dans mon exemple. Mais pratiquement ça me rends des enregistrement qui ont des id identiques !!

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si tu as des id identiques, c'est que pour un même id, au moins l'une des autres colonnes du SELECT a au moins deux valeurs différentes.

    Id, nom, titre, ville
    1, 'toto', 'titre1', 'Saint-Étienne'
    1, 'toto', 'titre1', 'Saint Etienne'

    Ce sont deux lignes différentes donc un SELECT DISTINCT Id, nom, titre, ville retournera les deux lignes.
    Et mettre Id entre parenthèses n'y changera rien car DISTINCT opère sur toutes les colonnes du SELECT.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Si tu as des id identiques, c'est que pour un même id, au moins l'une des autres colonnes du SELECT a au moins deux valeurs différentes.

    Id, nom, titre, ville
    1, 'toto', 'titre1', 'Saint-Étienne'
    1, 'toto', 'titre1', 'Saint Etienne'

    Ce sont deux lignes différentes donc un SELECT DISTINCT Id, nom, titre, ville retournera les deux lignes.
    Et mettre Id entre parenthèses n'y changera rien car DISTINCT opère sur toutes les colonnes du SELECT.
    ah bon ! alors il faur faire quoi ? Avez-vous une idée svp ?

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Tu veux supprimer les doublons sur l'id ?
    Quel(s) critère(s) détermine(nt) quelles valeurs conserver pour les autres colonnes ?

    Dans mon exemple, la bonne orthographe est Saint-Étienne mais rien ne permet de déterminer a priori qu'il faut conserver la première ligne et jeter la seconde, sauf l'examen humain des deux lignes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. SAS EG 5.1 - Supprimer les duplications de programme
    Par Polmart dans le forum Outils BI
    Réponses: 2
    Dernier message: 17/09/2014, 11h41
  2. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 15h30
  3. Réponses: 9
    Dernier message: 06/11/2007, 13h36
  4. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 12h11
  5. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 03h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo