具有相同ID的两行之间的SQL差异

Rac*_*uge 1 sql sqlite

我想知道如何取具有相同ID的两行的值(Val)的差,并从SQL查询返回它。这里的困难是我是第二行和第一行之间的区别,每个ID仅包含两行。

我正在使用SQLite 3.8.6。

这是我的桌子的样子:

ID   Val   TimeStamp
+---+----+---------------------+
| 2 |  7 | 2015-05-09 12:54:39 |
| 2 |  2 | 2015-05-09 14:48:30 |
| 3 | 16 | 2015-05-09 13:19:57 |
| 3 | 20 | 2015-05-09 15:01:09 |
+---+----+---------------------+ 
Run Code Online (Sandbox Code Playgroud)

我要结束于:

ID   Val   
+---+----+
| 2 |  -5|
| 3 |  4 |
+---+----+
Run Code Online (Sandbox Code Playgroud)

Unh*_*ean 5

select
   t1.id,t2.val-t1.val AS [Val]
from table t1
inner join table t2 ON t1.ID=t2.ID
   AND t1.TimeStamp<t2.Timestamp
Run Code Online (Sandbox Code Playgroud)