Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2007, 11h16   #1
Invité régulier
 
Inscription : mai 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 38
Points : 7
Points : 7
Par défaut PB: sum + count(*)

bonjour,

je voudrais dans la meme requete calculer le nombre total de tuples retourné avec count(*) et avoir la somme de tous ces tuples avec sum(count *).

Petit exemple:
Code :
1
2
3
4
 
SELECT * , count(*) AS total, sum(total) AS ALL 
					FROM stat
					GROUP BY site
Mais cela ne parait pas possible.
Si quequ'un a une idée

merci d'avance
boon31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2007, 17h30   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423
Ce qui n'est pas possible, dans ta requête, c'est d'avoir le beurre, l'argent du beurre et la crémière
Je m'explique : la requête suivante doit fonctionner :
Code :
1
2
3
SELECT count(*), sum(colonne)
FROM stat
GROUP BY site
où "colonne" est la colonne sur laquelle faire un total.
Mais comme on utilise deux opérations d'agrégation (sum et count), on ne peut pas ajouter un * en plus dans le select...
Voilou...

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2007, 17h36   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 423
Points : 6 423

Autant pour moi, j'avais pas bien pigé la question et ma réponse précédente est dans les choux...
En fait, c'est deux count différents que tu cherches à avoir, et pas un count et une somme... Mais avec le group by, tu es coincé... A moins de passer par une requête imbriquée, je vois pas trop...

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2007, 19h47   #4
Invité régulier
 
Inscription : mai 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 38
Points : 7
Points : 7
en effet, je pense que le mieux serait de refaire une table avec un trigger ou directement une vue pour stocker les donnees calculées...
boon31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 00h12   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Code :
1
2
3
SELECT site, count(*)
FROM stat
GROUP BY site WITH ROLLUP
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web