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

SQL Oracle Discussion :

Count avec condition


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Count avec condition
    Bonjour,

    je voulais savoir s'il était possible de "mettre une condition dans un count".
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id, count(id > 10)
    FROM Machin
    WHERE Bidule...;
    En gros je veux récupérer une certaine liste d'id et en même temps avoir le nombre d'id supérieur à 10.
    Si je tape ce genre de condition dans le count, j'ai une erreur
    ORA-00907: missing right parenthesis
    parce qu'il s'attend à une ')' à la place du '>' .

    Merci.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    COUNT est une fonction de groupe. Essayez plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id
    FROM Machin
    WHERE bidule...
    GROUP BY id
    HAVING COUNT(id)>10;

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il est possible mais, votre problème est ambigu. Essayez de préciser avec un petit jeu d’essaie le résultat attendu.

  4. #4
    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 394
    Points
    18 394
    Par défaut
    Je pense que vous cherchez à faire celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count(case when id > 10 then 1 end)
      FROM Machin
     WHERE Bidule

  5. #5
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Effectivement, on devrait vraiment pas ce qu'on cherche exactement...

    Mais par contre, Waldar, pour faire ta version, c'est peut être plus simple de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT count(*)
    FROM Machin
    WHERE Bidule
      AND id > 10


    Sinon, une autre interprètation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT id, count(case when id > 10 then 1 end) over()
    FROM Machin
    WHERE Bidule
    Bref ElBarto38, un petit jeu de données vraiment parlant ?

  6. #6
    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 394
    Points
    18 394
    Par défaut
    Bien vu pacmann

Discussions similaires

  1. multiple count avec condition
    Par psgman113 dans le forum Requêtes
    Réponses: 5
    Dernier message: 23/08/2011, 13h00
  2. effectuer un count avec conditions
    Par tibss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/04/2010, 19h11
  3. Count avec condition
    Par sherpa421 dans le forum iReport
    Réponses: 1
    Dernier message: 20/11/2009, 12h54
  4. Réponses: 1
    Dernier message: 22/12/2008, 11h15
  5. Count avec condition
    Par sourivore dans le forum Langage SQL
    Réponses: 24
    Dernier message: 22/08/2005, 23h41

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