Mysql
 sql >> Database >  >> RDS >> Mysql

Aggregazione dei dati per intervallo di tempo in MySQL

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.