Avevo una domanda simile:collating-stats-into-time-chunks e ha risposto molto bene. In sostanza, la risposta è stata:
Forse puoi usare la funzione DATE_FORMAT() e il raggruppamento. Ecco un esempio, spero che tu possa adattarti alle tue precise esigenze.
SELECT
DATE_FORMAT( time, "%H:%i" ),
SUM( bytesIn ),
SUM( bytesOut )
FROM
stats
WHERE
time BETWEEN <start> AND <end>
GROUP BY
DATE_FORMAT( time, "%H:%i" )
Se la tua finestra temporale copre più di un giorno e utilizzi il formato di esempio, i dati di giorni diversi verranno aggregati in bucket "ora del giorno". Se i dati grezzi non cadono esattamente nell'ora, puoi smussarli utilizzando "%H:00".
Grazie a Martin Clayton per la risposta che mi ha fornito.