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

Designer Discussion :

SELECT DISTINCT [VxiR2]


Sujet :

Designer

  1. #1
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut SELECT DISTINCT
    Bonjour à tous,

    Je suis en train de mettre des tables dérivées à gogo dans un univers.
    Comme le sql n'est pas forcément ma langue maternelle, j'utilise l'éditeur de requête de BO, je recopie la définition sql de ma requête et la recopie dans la définition de ma table dérivée (ça évite les erreures de syntaxe...)

    et là, je viens de remarquer un truc bizarre :
    • Quand j'utilise l'éditeur de requête de DesktopIntelligence, il écrit classiquement SELECT... FROM... WHERE...
    • Quand j'utilise l'éditeur de requête de Designer, il écrit SELECT DISTINCT... FROM... WHERE...

    Pourquoi ce "DISTINCT" ?? Qu'est ce que ça change si je l'enlève ? (apparement rien, mais je me enseigne quand même)

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    L'instruction "DISTINCT" permet à la requête SQL de ne renvoyer qu'une ocurrence d'une ligne qui serait en doublon.
    Ex : Table1
    CHAMP 1 | CHAMP2 | CHAMP3
    toto | titi | tata
    toto | titi | tutu
    toto | titi | tata

    La requête te renverra :
    toto | titi | tata
    toto | titi | tutu
    toto | titi | tata

    La requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT * FROM Table1
    te renverra :
    toto | titi | tata
    toto | titi | tutu

    Par contre, pourquoi qu'un côté il te la génère automatiquement et pas de l'autre, je ne saurais pas te dire...
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  3. #3
    Membre averti

    Inscrit en
    Juillet 2007
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 391
    Points : 443
    Points
    443
    Par défaut
    Le distinct est posé par BO lorsque l'option "Sans doublons" est cochée dans la requête (bouton en bas à gauche) où dans le gestionnaire de données (ce qui revient au même.

    Cela peut avoir des impacts importants lorsqu'on travaille sur des tables sans PK (et donc avec des doublons possibles) ou bien sur des requêtes qui ne pointent pas sur les pk.

    Un exemple pour essayer d'être clair( parce que c'est pas facile un vendredi pm ^^) :

    une table toto :

    champ a | champ b | montant c
    toto | aaa | 20
    toto | bbb | 20
    toto | ccc | 40

    si tu fais une requête r1 sans distinct
    le résultat sera :

    toto | 20
    toto | 20
    toto | 40

    et la somme, lorsque BO agrégera sera de 80.

    Par contre, avec un 'distinct', cela donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct a, c from toto
    toto | 20
    toto | 40

    et une somme agrégée de 40... et ce n'est pas forcément ce que l'on veut afficher ...


    edit 1 : trop rapide ce tomdubouchon
    edit 2 : mais je préfère mon exemple

  4. #4
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Merci pour cette réponse claire et précise

    Il est donc normal que cela ne change rien dans le cas des requêtes que je fais, mais c'est toujours bon à savoir.
    Je me coucherai plus savant ce soir.

    Edit : Merci aussi à toi bch97

  5. #5
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par bch97 Voir le message
    Cela peut avoir des impacts importants lorsqu'on travaille sur des tables sans PK (et donc avec des doublons possibles) ou bien sur des requêtes qui ne pointent pas sur les pk.
    "PK" ça signifie quoi exactement ? Quelquechose comme "clé d'intégrité" ?

  6. #6
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    PK = Primary Key = Clé primaire = Donnée(s) ne pouvant être en double dans une table = Identifiant unique donc...
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

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

Discussions similaires

  1. [MySQL] Problème récupération de données avec un SELECT DISTINCT
    Par 12_darte_12 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2005, 14h48
  2. Select distinct
    Par mic79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/04/2005, 16h30
  3. select distinct substring
    Par nmerydem dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/06/2004, 16h58
  4. Select distinct et order by
    Par arsgunner dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/06/2004, 11h17
  5. equivalent SELECT DISTINCT pour MyBase?
    Par chrisou31 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2004, 19h33

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