{MySQL} Plusieurs Count(*) dans 1 requete
Résolu
moderno31
Messages postés
872
Date d'inscription
Statut
Membre
Dernière intervention
-
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans une seule requete SQL je voudrais remonter quelque chose comme
categ totalZ totalY TotalZY
a n1 n2 n3
b m1 m2 m3
totalZ et totalY sont des count(*) normalement.
Pour total de ZY je fais un sum sur les alias et ça me donne le n3 o m3
En SQL server je sais traiter là je sèche.
Tout ce que j'ai testé ne fonctionne pas :
- créer une table temporaire puis l'y mettre mes différents résultats, pis l'appeler à la fin comme dernière requete (echec, erreurs dans tous les sens).
- faire un (SELECT CASE WHEN truc THEN COUNT('Z') ELSE 0 END) AS totalZ (quand je fais un truc du genre sous SQL server j'ai ce que je veux..) là ça me fais pas ce que je veux.
- faire une sous requete (select count(*) as nb from tab where dpt = 75 group by categ)
Dans mon résultat j'attends toujours 2 lignes (a et b) que le résultat de count(*) soit >= 0. Cas inverse afficher 0
Comment faire en mySQL, pour combiner en une seule requete plusieurs count sur un meme regroupement (categ) ?
Je voudrais régler la question par MySQL pas par PHP.
Est-ce que vous avez une idée svp ?
merci d'avance
Dans une seule requete SQL je voudrais remonter quelque chose comme
categ totalZ totalY TotalZY
a n1 n2 n3
b m1 m2 m3
totalZ et totalY sont des count(*) normalement.
Pour total de ZY je fais un sum sur les alias et ça me donne le n3 o m3
En SQL server je sais traiter là je sèche.
Tout ce que j'ai testé ne fonctionne pas :
- créer une table temporaire puis l'y mettre mes différents résultats, pis l'appeler à la fin comme dernière requete (echec, erreurs dans tous les sens).
- faire un (SELECT CASE WHEN truc THEN COUNT('Z') ELSE 0 END) AS totalZ (quand je fais un truc du genre sous SQL server j'ai ce que je veux..) là ça me fais pas ce que je veux.
- faire une sous requete (select count(*) as nb from tab where dpt = 75 group by categ)
Dans mon résultat j'attends toujours 2 lignes (a et b) que le résultat de count(*) soit >= 0. Cas inverse afficher 0
Comment faire en mySQL, pour combiner en une seule requete plusieurs count sur un meme regroupement (categ) ?
Je voudrais régler la question par MySQL pas par PHP.
Est-ce que vous avez une idée svp ?
merci d'avance
A voir également:
- {MySQL} Plusieurs Count(*) dans 1 requete
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Requete sql pix ✓ - Forum MySQL
1 réponse
Re,
Je change et simplifie l'intitulé de la question.
Dans une même colonne d'un SELECT de 2 lignes par ex, quand on veut faire sur chacune des 2 lignes 1 COUNT(*) on fait comment ?
exemple : Répartition entre homme et femme de ce que vous voulez :
Popuulation - Nb
Homme - 3000
Femme - 9000
Les 3000 : correspondent au résultat d'un COUNT sur certains critères
Les 9000 correspondent au résultant d'un autre COUNT sur d'autres critères.
Mais dans la même colonne je veux pouvoir les dissocier.
Est-ce possible ?
Y a t-il une autre façon de faire que je ne vois pas ?
merci
Je change et simplifie l'intitulé de la question.
Dans une même colonne d'un SELECT de 2 lignes par ex, quand on veut faire sur chacune des 2 lignes 1 COUNT(*) on fait comment ?
exemple : Répartition entre homme et femme de ce que vous voulez :
Popuulation - Nb
Homme - 3000
Femme - 9000
Les 3000 : correspondent au résultat d'un COUNT sur certains critères
Les 9000 correspondent au résultant d'un autre COUNT sur d'autres critères.
Mais dans la même colonne je veux pouvoir les dissocier.
Est-ce possible ?
Y a t-il une autre façon de faire que je ne vois pas ?
merci