我是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专栏。