Page 1 sur 1
compter le nombre d'occurence de valeurs dans un champs
Posté : 01 avr. 2007, 10:48
par orgerix
Bonjour,
J'ai dans une table un champs pouvant contenir a,b et c, et j'aimerai savoir combien de fois il y a a, combien de fois il y a b et combien de fois il y a c.
Y a t il une requete SQL simple qui me permet de faire ca ?
Je me doute qu'il faut utiliser GROUP BY champ, mais après, je ne vois pas...
Au pire, je peux faire 3 requete, mais autand éviter si possible...
Posté : 01 avr. 2007, 10:53
par Cyrano
Je n'ai pas de serveur MySQL fonctionnel sur ma machine pour tester, mais il me semble qu'avec une combinaison COUNT() + DISTINCT() on doit pouvoir obtenir le résultat recherché.

Posté : 01 avr. 2007, 10:58
par orgerix
Après une petite recherche sur les mnuels de MySQL, la requet suivante merche :
SELECT champ COUNT(*) FROM table GROUP BY champ
Enfin, je dis ca, mais j'ai pas encore fait mes tables utilisé par ma requete, donc je peux pas vérifier.
Posté : 02 avr. 2007, 14:52
par Ryle
C'est effectivement la bonne solution, le GROUP BY agira implicitement comme un distinct, donc pas de soucis de ce côté là
(il te manque toutefois une virgule entre le nom du champ et le count(*)

)
Posté : 02 avr. 2007, 16:00
par Expreg
<?php
$req="select count(lechamp) as nb, lechamp from latable group by lechamp";
$res=mysql_query($req);
while($data=mysql_fetch_assoc($res))
{
echo $data['lechamp'],' est présent ',$data['nb'],' fois<br/>';
}
?>
Posté : 02 avr. 2007, 18:38
par orgerix
merci expreg, maintenant, je sais comment nommer mes variable de fonction
Quand a ma virgule, je m'en suis apercu dès que j'ai utilisé la requete. SI seulement les erreurs pouvaient être aussi simple a trouver...