首頁 >資料庫 >mysql教程 >如何計算表中連續行之間的時間差?

如何計算表中連續行之間的時間差?

Susan Sarandon
Susan Sarandon原創
2024-11-28 06:56:17539瀏覽

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

計算連續行之間的時間差

您有一個包含 StartDate 列的表,並且希望計算兩個相鄰行之間的時間差。為此,請依照下列步驟操作:

  1. 實作自聯接: 若要關聯相鄰行,請在表上執行自聯接。但是,請確保連接條件適當。
  2. 加入連續的 RequestID: 若要計算連續行之間的時間差,請加入連續加一的請求 ID。這可以使用以下連線條件來實現: B.requestid = (A.requestid 1).
  3. 計算時間差: 連線行後,使用表達式( 檢索時間差B.starttime - A .starttime)。此計算從目前行的 StartDate 中減去前一行的 StartDate,提供它們之間的時間差。

如果請求ID 不連續,您可以利用以下查詢:

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

查詢採用交叉連接,並從子查詢中選擇大於目前請求ID 的最小請求ID 。隨後,它會像以前一樣計算時間差。

以上是如何計算表中連續行之間的時間差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn