MySQL时差与同一个表中具有ID间隙的连续行

时间:2016-09-24 20:53:40

标签: mysql

我是MySQL新手,但发现它很容易让人上瘾。我有一个表将DateTime,传感器类型和ID记录为Auto inc主键。我希望日志之间的时间差异,但我仍然坚持如何解决我的ID列中的差距。我试图添加row_number,但发现我无法加入内部,因为它并不存在。重新编号代码中的另一列是否可以解决?该表有大约3000条记录,每天都在增长。我使用MS Access作为前端,并使用ODBC进行连接。这可能很慢。

SELECT 
     (@row_number:=@row_number + 1) AS rnum,
     g1.LogDT CurLogDT,
     g2.LogDT NexLogDT,
     g1.Sensor,
     g1.ID,
     timestampdiff(second,g1.LogDT,g2.LogDT) as Diff 
FROM
     AllSensorsTbl g1
     inner join
     AllSensorsTbl g2 on g2.ID = g1.ID + 1 , (SELECT @row_number:=0) AS t
where
     g1.Sensor = "sump pump"

这就是上面的回报

| rnum | ID |      CurLogDT    |     NexLogDT     |  Diff |   Sensor  |
|  604 |906 | 11/27/15 19:39:35| 11/28/15 01:32:18| 21163 | sump pump |
|  605 |907 | 11/28/15 01:32:18| 11/28/15 03:23:23| 6665  | sump pump |
|  606 |914 | 11/28/15 19:56:21| 11/29/15 03:25:34| 19753 | sump pump |
|  607 |1050| 12/26/15 09:57:03| 12/26/15 15:10:24| 18801 | sump pump |
|  608 |1051| 12/26/15 15:10:24| 12/26/15 16:42:26| 5522  | sump pump |

ID 907 914 1050是NexLogDT时间不是我想要的地方。我需要它遵循rnum专栏。

0 个答案:

没有答案