Heim >Datenbank >MySQL-Tutorial >Wie berechnet man Zeitunterschiede zwischen aufeinanderfolgenden Zeilen in einer Tabelle?

Wie berechnet man Zeitunterschiede zwischen aufeinanderfolgenden Zeilen in einer Tabelle?

Susan Sarandon
Susan SarandonOriginal
2024-11-28 06:56:17557Durchsuche

How to Calculate Time Differences between Consecutive Rows in a Table?

Zeitunterschiede zwischen aufeinanderfolgenden Zeilen berechnen

Sie haben eine Tabelle mit einer StartDate-Spalte und möchten den Zeitunterschied zwischen zwei benachbarten Zeilen berechnen. Um dies zu erreichen, führen Sie die folgenden Schritte aus:

  1. Implementieren Sie einen Self-Join: Um benachbarte Zeilen in Beziehung zu setzen, führen Sie einen Self-Join für die Tabelle durch. Stellen Sie jedoch sicher, dass die Join-Bedingung angemessen ist.
  2. Join auf sequentiellen Anforderungs-IDs: Um den Zeitunterschied zwischen aufeinanderfolgenden Zeilen zu berechnen, verbinden Sie sich auf Anforderungs-IDs, die sequentiell um eins ansteigen. Dies kann mit der folgenden Join-Bedingung erreicht werden: B.requestid = (A.requestid 1).
  3. Zeitdifferenz berechnen: Nachdem Sie die Zeilen verbunden haben, rufen Sie die Zeitdifferenz mit dem Ausdruck ( B.Startzeit - A.Startzeit). Diese Berechnung subtrahiert das Startdatum der vorherigen Zeile von dem der aktuellen Zeile und liefert so den Zeitunterschied zwischen ihnen.

Wenn Anforderungs-IDs nicht aufeinanderfolgend sind, können Sie die folgende Abfrage nutzen:

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

Diese Abfrage verwendet einen Cross-Join und wählt aus einer Unterabfrage die minimale Anforderungs-ID aus, die größer als die aktuelle Anforderungs-ID ist. Anschließend wird wie zuvor die Zeitdifferenz berechnet.

Das obige ist der detaillierte Inhalt vonWie berechnet man Zeitunterschiede zwischen aufeinanderfolgenden Zeilen in einer Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn