Wenn Ihre Tabelle t ist, und Ihre Timestamp-Spalte ist ts, und Sie wollen die Antwort in Sekunden:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts))
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Dies wird für große Tabellen Meilen schneller sein, da es kein N-Quadrat hat.
Dies verwendet einen niedlichen mathematischen Trick, der bei diesem Problem hilft. Ignorieren Sie das Problem der Duplikate für den Moment. Die durchschnittliche Zeitdifferenz zwischen aufeinanderfolgenden Zeilen ist die Differenz zwischen dem ersten Zeitstempel und dem letzten Zeitstempel geteilt durch die Anzahl der Zeilen -1.
Beweis: Der durchschnittliche Abstand zwischen aufeinanderfolgenden Zeilen ist die Summe der Entfernung zwischen aufeinander folgenden Zeilen geteilt durch die Anzahl aufeinanderfolgender Zeilen. Aber die Summe der Differenz zwischen aufeinanderfolgenden Zeilen ist nur der Abstand zwischen der ersten Zeile und der letzten Zeile (vorausgesetzt, sie sind nach Zeitmarken sortiert). Und die Anzahl der aufeinanderfolgenden Zeilen ist die Gesamtzahl der Zeilen -1.
Dann konditionieren wir einfach die Zeitstempel zu unterscheiden.
Danke, das ist großartig. –
Brilliant. Eine gute Antwort auf die mögliche Wiederholung von Zeitstempeln. – Bell
Gut gemacht. Einfache Mathematik ist immer die beste Option. – Rob