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 :

Problème requête suppression doublons


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut Problème requête suppression doublons
    Bonjour,

    J'ai un problème dans une requête SQL. Une première requête me donne le résultat suivant :

    Column1 --- Column2
    ---------------------
    1 --- A
    2 --- AA
    2 --- BB
    3 --- AAA
    4 --- AAAA
    4 --- BBBB

    Je désire faire une requête qui inclus cette dernière afin de ne récupérer que les tuples suivants :

    1 --- A
    3 --- AAA

    A savoir, les tuples dont la valeur de la colonne "Column1" est unique.

    Merci d'avance de votre aide.

  2. #2
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    J'ai bien essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Column1, Column2
    FROM (...) AS temp
    GROUP BY Column1, Column2
    HAVING COUNT(Column1)=1
    ORDER BY Column1
    Mais ca ne marche pas...

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    salut,

    comme ceci par exemple ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT min(Column1) as Column1, Column2
    FROM (...) AS temp
    GROUP BY Column2
    HAVING COUNT(Column1)=1
    ORDER BY Column1

  4. #4
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    je te propose l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT Column2
    FROM  tatable

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Dans ce sens là c'est assez facile, comme vous ne gardez que ceux qui ont une seule valeur vous pouvez grouper sur col1, appliquer un aggrégat sur col2 et ne garder que ceux qui ont une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      select Column1, max(Column2) AS Column2
        from (...) AS temp
    group by Column1
      having count(*) = 1

  6. #6
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Dans ce sens là c'est assez facile, comme vous ne gardez que ceux qui ont une seule valeur vous pouvez grouper sur col1, appliquer un aggrégat sur col2 et ne garder que ceux qui ont une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      select Column1, max(Column2) AS Column2
        from (...) AS temp
    group by Column1
      having count(*) = 1
    Super, je n'avais pas pensé à faire une fonction d'aggrégat max ou min sur du VARCHAR... Ca fonctionne ! Belle manip !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème requête 33 doublons
    Par T4GAD4 dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/09/2014, 17h01
  2. Suppression doublons requête SQL
    Par dimferte dans le forum SQL
    Réponses: 6
    Dernier message: 02/12/2008, 10h02
  3. Problème requête pour suppression
    Par sick35 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/05/2008, 15h42
  4. Petit problème de suppression avec un requête
    Par Erakis dans le forum Requêtes
    Réponses: 8
    Dernier message: 12/10/2007, 15h54
  5. [MySQL] Problème de syntaxe dans suppression doublons
    Par fred23195 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/04/2006, 15h45

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