找到顺序行mysql之间的区别,没有行ID

时间:2016-04-19 02:44:34

标签: mysql

目标:获取行中的值与下一行中的值之间的差异(我使用MySQL)。假设我们有表"事件":

step:                timestamp:

Leave for store      1400000000
Buy hamburgers       1400000002
Big party            1400000005

所以我们期待的结果是:

2
3

并发症1:我的表没有有ID列,所以我不能这样做:

select (e2.timestamp - e1.timestamp)
from events e1, events e2
where (e1.id + 1) = e2.id

并发症2:我使用的数据库连接(Splunk)不允许我创建或更改临时表(否则我只是添加一个id列)。我洗了吗?

谢谢你!

1 个答案:

答案 0 :(得分:3)

使用用户变量来保存上一行的时间戳。

SELECT step, timestamp - @prevtime AS diff, @prevtime := timestamp
FROM events
CROSS JOIN (SELECT @prevtime := 0) AS x
ORDER BY timestamp