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

SQL Berechnen Sie den durchschnittlichen Zeitunterschied zwischen den Gesamtzeilen

Wenn Sie wissen möchten, wie oft (im Durchschnitt) eine Zeile eingefügt wurde, müssen Sie meiner Meinung nach nicht alle Unterschiede berechnen. Sie müssen nur die Differenzen zwischen benachbarten Zeilen (benachbart basierend auf dem Zeitstempel) summieren und das Ergebnis durch die Anzahl der Summanden dividieren.

Die Formel

((T1-T0) + (T2-T1) + … + (TN-TN-1)) / N

kann offensichtlich nur zu

vereinfacht werden
(TN-T0) / N

Die Abfrage würde also etwa so aussehen:

SELECT TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*) - 1)
FROM atable

Stellen Sie sicher, dass die Anzahl der Zeilen größer als 1 ist, oder Sie erhalten den Fehler „Division durch Null“. Wer möchte, kann den Fehler dennoch mit einem einfachen Trick verhindern:

SELECT
  IFNULL(TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / NULLIF(COUNT(*) - 1, 0), 0)
FROM atable

Jetzt können Sie die Abfrage sicher für eine Tabelle mit einer einzelnen Zeile ausführen.