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 :

Comptage valeurs uniques


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut Comptage valeurs uniques
    Bonjour,

    J'ai besoin d'un petit coup de main concernant un comptage de valeurs.

    Disons que j'ai une table de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CLIENT | ARTICLE | CATHEGORIE
    A1           POMME         FRUIT
    A1           POIRE           FRUIT
    A1           CHOUX          LEGUME
    A2           CHOUX          LEGUME
    A3           CAROTTE       LEGUME
    Je sais faire un count(distinc client) where Cathégorie = Fruit pour avoir le nombre de clients consommant des fruits.
    Fruits = 1 client ; Legumes = 3 clients

    Ce que je voudrais c'est compter le nombre de client ne consommant que des fruits, mais je bloque !

    Le résultat serait 0 ici pour que les fruits et 2 pour que les légumes.

    Si vous pouvez m'aider ce serait super.

    Merci d'avance.

    Vincent

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Je ferai comme ceci (pour vous la requête commence au SELECT, le with sert à créer un jeu de test) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    with matable as
    (
    select 'A1' cli, 'POMME' art, 'FRUIT' cat from dual union all
    select 'A1'    , 'POIRE'    , 'FRUIT'     from dual union all
    select 'A1'    , 'CHOUX'    , 'LEGUME'    from dual union all
    select 'A2'    , 'CHOUX'    , 'LEGUME'    from dual union all
    select 'A3'    , 'CAROTTE'  , 'LEGUME'    from dual
    )
    select cat_d.cat,
           count(sr.cat_max) as nb_cli
      from (select distinct cat from matable) cat_d -- référence des catégories
           left outer join 
           ( select max(cat) as cat_max
               from matable
           group by cli
             having count(distinct cat) = 1) sr
             on sr.cat_max = cat_d.cat
    group by cat_d.cat;
     
    CAT	NB_CLI
    LEGUME	2
    FRUIT	0
    Cette requête ne fonctionne que pour les clients ne mangeant qu'une seule catégorie.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Merci Waldar, je vais regarder ça de plus prêt.

Discussions similaires

  1. [Tableaux] Valeur unique dans un tableau
    Par glsn dans le forum Langage
    Réponses: 6
    Dernier message: 06/12/2006, 11h18
  2. Extraire les 20 dernières valeurs uniquement
    Par bob75000 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/07/2006, 14h17
  3. [VBA-E] Selection de valeur uniquement
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/05/2006, 23h28
  4. [vb.net][datatable] retrouver extraire des valeur unique
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2006, 10h33
  5. Réponses: 2
    Dernier message: 23/11/2003, 18h44

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