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

Requêtes MySQL Discussion :

Obtenir résultat total d'un COUNT() ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    Par défaut Obtenir résultat total d'un COUNT() ?
    Bonjour,

    Je souhaite connaître le total d'un compte sur une table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT target_id, COUNT(idprobe) 
    FROM target 
      JOIN probes ON idtarget = target_idtarget 
    WHERE target_id BETWEEN 120 AND 635
    ex de résultat ;
    120 25
    121 20
    122 3
    ...
    635 2

    Sauriez-vous obtenir ceci (par exemple stocker le COUNT() dans une variable style, en partant d'une variable initialisée à 0, @total = @total + COUNT()) ?

    En vous remerciant,

    C. Tobini

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 036
    Points
    6 036
    Par défaut
    Entre les requête tu utilises un UNION.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT SUM(nb) FROM 
    (SELECT COUNT(*) AS nb FROM maTable WHERE monChamp Between xxx AND yyy
    UNION
    SELECT COUNT(*) AS nb FROM maTable WHERE monChamp Between xxx AND yyy
    UNION
    SELECT COUNT(*) AS nb FROM maTable WHERE monChamp Between xxx AND yyy
    UNION
    SELECT COUNT(*) AS nb FROM maTable WHERE monChamp Between xxx AND yyy) as tt
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 011
    Points : 23 692
    Points
    23 692
    Par défaut
    Le GROUP BY est fait pour ça...
    Ou alors, je ne comprends pas bien le problème...
    Peux-tu nous donner le schéma des tables et un exemple (dans ta requête, on ne distingue pas bien quel ID est quoi...).

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Effectivement, il faut utiliser un GROUP BY associé à un COUNT

    Ajoute ca en fin de ta requête :

    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Petite nuance :

    COUNT(expr) : Retourne le nombre de valeurs non-NULL

    COUNT(*) : Retourne le nombre de lignes, même si elles contiennent NULL.
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

Discussions similaires

  1. [MySQL] Afficher le résultat de la fonction "count"
    Par sybil dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/04/2009, 19h58
  2. Réponses: 1
    Dernier message: 27/05/2008, 20h09
  3. 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
  4. [SQL] Requête SQL : obtenir un total
    Par Riwalenn dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/09/2006, 10h19
  5. limiter le résultat retourné par le count
    Par SuperFoustan dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/08/2003, 12h10

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