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 :

Requête qui ignore les doublons


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 134
    Points : 74
    Points
    74
    Par défaut Requête qui ignore les doublons
    Bonjour,

    Soit la table suivante :

    id | label | state
    -----------------
    1 toto 1
    2 toto 0
    3 titi 1
    4 tata 1

    J'aimerais faire un select qui me renvoie ça:

    3 titi 1
    4 tata 1

    Autrement dit, j'aimerais ignorer les lignes qui ont des doublons sur la colonne label.
    Je ne vois pas trop comment je pourrais m'y prendre sachant qu'il faut que la requête soit la plus optimisée possible. Exit les jointures dans tous les sens donc.
    Quelqu'un a une idée?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 666
    Points : 11 185
    Points
    11 185
    Par défaut
    Bonjour,
    Je vois un truc du genre:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select T1.*
    from MaTable T1
    left outer join MaTable T2 on T1.label = T2.label and T1.id <> T2.id
    where T2.id is null

    Par contre sans index sur le label, la requête risque de ne pas être très optimisée...

    Tatayo.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 134
    Points : 74
    Points
    74
    Par défaut
    Merci c'est la requête que je cherchais. Par contre il n'y a vraiment pas moyen d'éviter une jointure? Avec la table que j'ai (plusieurs 100aines de millions de ligne), même avec un index, je crains que ça lag à mort.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    8 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2008
    Messages : 8 218
    Points : 17 141
    Points
    17 141
    Par défaut
    Vous pouvez faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      SELECT min(id) as id, label, min(state) as state
        FROM MaTable
    GROUP BY label
      HAVING count(*) = 1;

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2005
    Messages : 134
    Points : 74
    Points
    74
    Par défaut
    Merci Waldar. je n'y aurais pas pensé.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2014, 16h18
  2. Une requête qui donne des doublons dans les résultats
    Par HDR_16 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2014, 19h51
  3. [AC-97] Requête qui retire les doublons en fonctions de 3 clefs primaires.
    Par Jazz_ dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/10/2010, 11h26
  4. requête pour exclure les doublons.
    Par sam01 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2005, 20h10
  5. Réponses: 7
    Dernier message: 25/07/2005, 14h41

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