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

MySQL durchschnittliche Anzahl von Stunden zwischen erstellten Datetimes für ein bestimmtes Zeitintervall

Der Durchschnitt ist die Differenz zwischen dem ersten und dem letzten Datensatz dividiert durch die Anzahl plus eine Zahl.

SELECT (UNIX_TIMESTAMP(max(date(created)+1), min(date(created)))/1000)/(count(*)+2) AS timediffsecs
FROM Sessions
WHERE created BETWEEN DATE_SUB(NOW(), INTERVAL 4 DAYS) AND NOW()

Was macht das? Erstens werden den Daten keine zusätzlichen Datensätze hinzugefügt. Stattdessen wird nur das frühere Datum abgerundet und das spätere Datum aufgerundet. UNIX_TIMETAMP liefert Werte in Millisekunden seit einem bestimmten Zeitpunkt. Nimm den Unterschied zwischen dem Größten und dem Kleinsten. Teilen Sie schließlich durch die Anzahl der gefundenen Zeilen plus 2 (ich denke, es sollte die Anzahl plus 1 sein, aber Ihre Frage sagt Anzahl plus 2).