MySQL中行之间的差异

时间:2013-08-10 13:53:38

标签: mysql

我想在mysql中生成一个新表,其中包含每两行之间的差异。 例如,如果我有这个表:

表1:

ID     VALUE

1      16748 
1      19628
1      23245
1      23322
1      33399
2      15367
2      17839
2      34578
2      53421
3      14229
3      19533
........

我想得到2个连续值(行[x + 1] -row [x])之间的区别,对于每个ID的所有值

所以我的结果是:

ID      DIFF

1       2880
1       3617
1       77
1       10077
2       2472
2       16739
2       18843
3       5304

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情: -

SELECT
    MIN(T2.VALUE- T1.VALUE) AS Dif
FROM
    Table T1 INNER JOIN Table T2 on T1.VALUE< T2.VALUE
ORDER BY
    T1.VALUE

答案 1 :(得分:0)

你可以通过自己加入表来做到这一点。

SELECT (first.value - second.value) AS differ FROM `table` AS first JOIN `table` AS second WHERE first.id + 1 = second.id