Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erstellen Sie einen durchschnittlichen Zeitunterschied zwischen Datensätzen in MySQL?

Sie müssen Ihren Zeitstempel in eine Zahl umwandeln, um ihn runden zu können. Und wenn Sie den durchschnittlichen Zeitstempel haben, konvertieren Sie ihn zurück in ein Datum.

select device, count(*) as cnt, FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(time)), '%i:%s')
from database.table
group by device
having cnt>1
order by device;

Hinweis:Wenn Sie negative Zeiten berücksichtigen, ist Ihr Durchschnitt offensichtlich! Wenn Sie dies nicht tun, ist es eine bessere Idee, es mit einer Skriptsprache (php, c#, ruby...) zu berechnen

average := avg(ts1–ts2, ts2-ts3, ts3-ts4)
= (ts1–ts2 + ts2-ts3 + ts3-ts4)/3
= (ts4-ts1)/3

Verallgemeinerung:

average = (last entry - first entry) / (number of entries - 1)