gpt4 book ai didi

mysql - 如何在MySQL中没有连续ID的两个连续行之间进行DATEDIFF?

转载 作者:行者123 更新时间:2023-11-29 10:14:24 24 4
gpt4 key购买 nike

目前,我有一个查询,给出来自表“Logs”的结果:

S.ID    S.INDEX   E.ID  TIME                      Secs
1 1 1 2018-05-14 16:07:48.527
2 2 1 2018-05-14 16:08:02.967 14
3 3 1 2018-05-14 16:08:21.750 19
10 1 2 2018-05-14 16:07:46.983
11 2 2 2018-05-14 16:08:00.883 14
12 3 2 2018-05-14 16:09:19.830 79
13 4 2 2018-05-14 16:09:49.907 30
29 1 3 2018-05-14 16:08:02.490
30 2 3 2018-05-14 16:08:06.717 04

“秒”栏是在这里手写的,这些是我需要的值。已经尝试使用 DATEDIFF 但由于 S.ID 不连续(它取决于 E.ID),我没有得到正确的结果。

如何进行查询以返回正确的值?我想我应该考虑 E.ID,因为它是在“相同”增量期间唯一保持不变的东西,如果我在 S.INDEX 中看到 1,我应该重置计数。

最佳答案

只要保证我在原始评论中描述的模式,这应该可行:

SELECT a.*, TO_SECONDS(a.TIME) - TO_SECONDS(b.TIME) AS `Secs`
FROM theTable AS s
LEFT JOIN theTable AS b ON a.`e.id` = b.`e.id` AND a.`s.id` = b.`s.id` + 1
;

此外,如果不同的 e.id 值与 s.id 值之间始终存在差距,则实际上不需要 e.id 比较,但仍然使查询的意图更清晰。

关于mysql - 如何在MySQL中没有连续ID的两个连续行之间进行DATEDIFF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50335354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com