首页 >数据库 >mysql教程 >如何计算表中连续行之间的时间差?

如何计算表中连续行之间的时间差?

Susan Sarandon
Susan Sarandon原创
2024-11-28 06:56:17557浏览

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