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 Count(*)


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Requête Count(*)
    Bonjour,

    Mon problème est que je voudrais faire une requête permettant d'effectuer un comptage sur 2 critère. Je m'explique j'ai deux requête qui renvoie le même nombre de résultats, elle sont de la forme:

    SELECT NOM, COUNT(*) FROM TABLE WHERE TYPE<3
    SELECT NOM, COUNT(*) FROM TABLE WHERE TYPE>3

    Comment faire une seule requête, permettant le résultat de ses deux requête?

    Merci pour vos réponses

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NOM, COUNT(*) FROM TABLE WHERE TYPE<>3
    ?

  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
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Nom, SUM(CASE WHEN Type < 3 THEN 1 else 0 END),
                SUM(CASE WHEN Type > 3 THEN 1 else 0 END)
    FROM laTable

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT NOM, COUNT(*) FROM TABLE WHERE TYPE<3
    UNION ALL
    SELECT NOM, COUNT(*) FROM TABLE WHERE TYPE>3
    encore 1

    A +

  5. #5
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    @sqlpro

    bonjour,
    juste pour ma gouverne, est-ce bien correcte cette syntaxe sans avoir à déclarer NOM dans le group by ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Est ce que le When Then Else fonctionne sous Oracle 8.1?
    Et si oui est ce qu'on peut l'utiliser ailleur que dans le SELECT?

  7. #7
    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
    ORACLE 8i :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Nom, SUM(DECODE(SIGN(Type - 3),  1, 1, 0)),
                SUM(DECODE(SIGN(Type - 3), -1, 1, 0))
    FROM laTable
    GROUP BY Nom

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    Iper :
    est-ce bien correcte cette syntaxe sans avoir à déclarer NOM dans le group by ?
    Absolument .......... pas !

    Juste un oubli !

    A +

  9. #9
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Citation Envoyé par SQLpro
    Iper :

    Absolument .......... pas !

    Juste un oubli !

    A +
    Ok, merci pour la réponse (ça me mettait de sérieux doutes sur mes connaissances SQL...), de plus Médiat avait préalablement corrigé cet oubli...

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    Mais en fait il existe certains SGBDR pour lesquels cette syntaxe idiote passe parfaitement... Je ne les citerait pas afin de ne pas faire de tort à la grande majorité de ceux qui utilise de telles m...

    A +

  11. #11
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Citation Envoyé par SQLpro
    Mais en fait il existe certains SGBDR pour lesquels cette syntaxe idiote passe parfaitement... Je ne les citerait pas afin de ne pas faire de tort à la grande majorité de ceux qui utilise de telles m...

    A +
    Moi non plus, Interbase par exemple....

Discussions similaires

  1. 2 requêtes count() sur la même ligne
    Par nanard110 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/08/2007, 15h18
  2. Récuperer dans un formulaire le résultat d'une requête count
    Par jean-paul lepetit dans le forum IHM
    Réponses: 6
    Dernier message: 29/01/2007, 10h10
  3. Problème de requête count(*) avec DB2
    Par elsodiop dans le forum DB2
    Réponses: 3
    Dernier message: 30/11/2006, 16h11
  4. Requête count un peu chaud
    Par louroulou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/06/2006, 14h43
  5. PB avec une requête Count
    Par Marion dans le forum ASP
    Réponses: 7
    Dernier message: 05/07/2004, 12h56

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