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

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

Susan Sarandon
发布: 2024-11-28 06:56:17
原创
556 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板