Berechnung der Zeitdifferenz zwischen aufeinanderfolgenden Datensätzen
Die Aufgabe besteht darin, die Zeitdifferenz zwischen benachbarten Zeilen in einer Tabelle mit einer StartDate-Spalte zu bestimmen. Bei einer gegebenen Tabellenstruktur ist es notwendig, die zeitliche Lücke zwischen jedem Paar aufeinanderfolgender Zeilen zu berechnen.
Ein Ansatz beinhaltet einen Self-Join auf der MyTable. Dies wird durch die folgende Abfrage erreicht:
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A INNER JOIN MyTable B ON B.requestid = (A.requestid + 1) ORDER BY A.requestid ASC
Diese Methode berechnet erfolgreich den Zeitunterschied zwischen aufeinanderfolgenden Datensätzen. Wenn die Anforderungs-IDs jedoch nicht aufeinanderfolgend sind, kann die folgende Abfrage verwendet werden:
SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A CROSS JOIN MyTable B WHERE B.requestid IN (SELECT MIN (C.requestid) FROM MyTable C WHERE C.requestid > A.requestid) ORDER BY A.requestid ASC
Durch die Verwendung von CROSS JOIN und einer Unterabfrage identifiziert dieser Ansatz die minimale Anforderungs-ID, die größer als die aktuelle Anforderungs-ID ist , wodurch die Berechnung des Zeitunterschieds auch für nicht aufeinanderfolgende Datensätze möglich ist.
Das obige ist der detaillierte Inhalt vonWie berechnet man den Zeitunterschied zwischen aufeinanderfolgenden Datensätzen in einer Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!