SUM et GROUP BY ?

SUM et GROUP BY ? - SQL/NoSQL - Programmation

Marsh Posté le 17-03-2012 à 09:09:35    

Bonjour,
 
Lorsque je fais la requête :

Citation :

$qst = "SELECT `recdate`, COUNT(*), SUM(`proposed`), SUM(`ok`) FROM stats GROUP BY `recdate` ORDER BY `recdate` DESC LIMIT 10;";


 
Le champ de la 3ème colonne est plus élevé que la seconde (idem 4ème champ) sachant que :
- recdate est de type DATE
- proposed et ok sont des ENUM('0', '1')
 
 
En fait je voudrais avoir le nombre de "proposed" et de "OK" synthétisés par jour pour les au plus 10 derniers jours et il me semble que ma requête est bien formattée pour cela... une idée ?
 
Merci

Reply

Marsh Posté le 17-03-2012 à 09:09:35   

Reply

Marsh Posté le 19-03-2012 à 19:45:34    

Pour les champs "ENUM", mySQL n'enregistre pas la valeur complète (la chaîne de caractère) pour chaque enregistrement. Chaque valeur a un identifiant et c'est cet identifiant qui est enregistré. Et quand tu fais des traitements numériques, mySQL les fait sur cet identifiant.
Je ne serais pas étonné qu'il commence à 1 ce qui donnerait donc :
- 1 -> '0'
- 2 -> '1'
Du coup, le SUM travaille sur l'identifiant et ne donne pas le bon résultat [:figti]  
 
Essaye de passer la requête suivante :

SELECT DISTINCT proposed, proposed+0 identifiant FROM stats;


(le "+0" permet de forcer la conversion valeur->identifiant)


---------------
Doucement le matin, pas trop vite le soir.
Reply

Marsh Posté le 19-03-2012 à 21:28:33    

C'était bien ça !
 
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed