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

How to DATEDIFF in MySQL between two consecutive rows not having consecutive IDs?

目前我有一个查询给我这个来自 table "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

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

如何查询 return 正确的值?我想我应该考虑 E.ID 因为它是唯一在 "same" 递增期间保持不变的东西,如果我在 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 比较,但仍然使查询的意图更加清晰。