sql >> Databasteknik >  >> RDS >> Mysql

Aggregera data efter tidsperiod i MySQL

Jag hade en liknande fråga:collating-stats-into-time-chunks och fick det väldigt bra besvarat. I huvudsak var svaret:

Du kanske kan använda funktionen DATE_FORMAT() och gruppering. Här är ett exempel, förhoppningsvis kan du anpassa dig efter dina exakta behov.

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" )

Om ditt tidsfönster omfattar mer än en dag och du använder exempelformatet, kommer data från olika dagar att samlas i "timme-på-dagen"-segment. Om rådata inte faller exakt på timmen kan du jämna ut det genom att använda "%H:00."

Tack vare Martin Clayton för svaret han gav mig.



  1. Fluent NHibernate kan inte ladda MySql.Data från GAC i felsökningsläge för ett test

  2. 5 problemfria tips för att använda SQL UPDATE Statement med JOIN

  3. Använd Moodle för att skapa användare och anmäla dem till kurser via SQL

  4. PostgreSQL vs Linux-kärnversioner