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

MS SQL Server Discussion :

Distinct sur colonne unique


Sujet :

MS SQL Server

  1. #1
    Dnx
    Dnx est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Points : 154
    Points
    154
    Par défaut Distinct sur colonne unique
    bonjour
    j'utilise MS SQL server 2000 et je voudrais faire un select distinct sur une seule colonne et peu importe les autres

    voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT (id_oeuvre), TitreOriginal as Title, Label as label, Interprete as Interprete, WAV as WAV, MPG as MPG FROM PUBLICATION WHERE ( ( (Interprete like '%britney spears%') ) ) GROUP BY  TitreOriginal, Label, Interprete, id_oeuvre, WAV, MPG
    voila, cette requête ne génère pas d'erreur mais ne me distingue pas la colonne ID_OEUVRE, elle distingue également les autres colonnes.

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    C'est le "peu importe les autres" qui ne marche pas. Du moment que vous faites un distinct, cela regroupe des enregistrements. Dès lors, comment l'optimiseur peut-il faire pour distinguer des autres champs celui à afficher pour un id spécifique ? de plus, faire un distinct sur une colonne clé primaire, c'est proprement inutile, non ?

    En français, que voule-vous retourner ? Si c'est un ID pour un titre donnée, faites plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT MIN(id_oeuvre), TitreOriginal as Title, Label as label, Interprete as Interprete, WAV as WAV, MPG as MPG 
    FROM PUBLICATION 
    WHERE Interprete like '%britney spears%'
    GROUP BY  TitreOriginal, Label, Interprete, WAV, MPG

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    J'aurais interprété la question exactement dans l'autre sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_oeuvre, MIN(TitreOriginal) as Title, MIN(Label) as label, MIN(Interprete) as Interprete, MIN(WAV) as WAV, MIN(MPG) as MPG 
    FROM PUBLICATION 
    WHERE Interprete like '%Pink Floyd%' 
    GROUP BY  id_oeuvre
    Comme cela le posteur peut choisir

    J'ai enlevé "britney spears" : c'est trop pour moi

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Médiat, tu as sûrement raison : je suis parti trop vite du faux postulat que l'id était primaire. En fait, selon la question, ce serait plutôt une clé étrangère, d'où l'avantage du distinct.

Discussions similaires

  1. distinct sur plusieurs colonnes
    Par zerocoolyoussef dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/08/2009, 12h23
  2. faire un distinct sur plusieurs colonnes
    Par elekis dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/03/2009, 13h23
  3. Réponses: 4
    Dernier message: 13/04/2007, 17h32
  4. Réponses: 2
    Dernier message: 07/10/2006, 19h46
  5. [Débutant] DISTINCT sur une seule des colonnes ?
    Par Neilos dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/06/2004, 23h04

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