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

时间:2016-09-30 19:25:20

标签: 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 |
+---+----+---------------------+ 

我想最终:

ID   Val   
+---+----+
| 2 |  -5|
| 3 |  4 |
+---+----+

1 个答案:

答案 0 :(得分: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