[MySQL] Aggrégation horaire + Tri

Aggrégation horaire + Tri [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 31-01-2004 à 11:36:26    

J'ai une table qui contient des données datées (DATETIME). Je veux obtenir l'aggrégation de ces données par heure :
 
select count(*), hour(madate) from matable group by hour(madate) order by hour(madate);
 
pour avoir une table contenant le nombre de données / heure & l'heure. Ça marche, mais ça me semble lourd, et surtout je répète 3 fois hour(madate). Moyen de faire + concis ?


Message édité par youdontcare le 01-02-2004 à 17:45:11
Reply

Marsh Posté le 31-01-2004 à 11:36:26   

Reply

Marsh Posté le 31-01-2004 à 22:24:36    

Tu peux nommer la colonne pour la réutiliser dans le ORDER BY :
 
SELECT count(*), hour(madate) as h FROM matable GROUP BY hour(madate) ORDER BY h;  
 
Mais bon, ca ne change pas grand chose [:spamafote]

Reply

Marsh Posté le 01-02-2004 à 17:44:56    

:jap: c'est déjà plus clean.
 
Autre chose, comment trier le résultat ? J'obtiens le nombre de données par heure, je veux trier cette table pour obtenir les heures les plus fréquentées, mais je vois pas comment faire ... :??:

Reply

Marsh Posté le 02-02-2004 à 00:37:19    

Il suffit de trier sur la première colonne :
 
SELECT count(*) as c, hour(madate) as h FROM matable GROUP BY hour(madate) ORDER BY c;
 
(je suis pas sur de répondre à la question :??: )

Reply

Marsh Posté le 02-02-2004 à 09:42:02    

C'était ça ! Merci :jap:

Reply

Sujets relatifs:

Leave a Replay

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