如何计算当前记录与先前记录之间的差异。

这是表格示例

| rid    | time                |    data |
|10000038| 2012-03-13 12:30:18 |     100 |
|10000052| 2012-03-13 12:30:18 |     120 |
|10000053| 2012-03-13 12:30:18 |     140 |
|10000038| 2012-03-13 12:20:18 |     160 |
|10000052| 2012-03-13 12:20:18 |     180 |
|10000053| 2012-03-13 12:20:18 |     160 |
|10000038| 2012-03-13 12:10:18 |     100 |
|10000052| 2012-03-13 12:10:18 |     160 |
|10000053| 2012-03-13 12:10:18 |     160 |

在这里,我希望结果为,
| rid    | time                |    data | DIf |
|10000038| 2012-03-13 12:30:18 |     100 | 0   |
|10000052| 2012-03-13 12:30:18 |     120 | 20  |
|10000053| 2012-03-13 12:30:18 |     140 | 20  |
|10000038| 2012-03-13 12:20:18 |     160 | 20  |
|10000052| 2012-03-13 12:20:18 |     180 | 20  |
|10000053| 2012-03-13 12:20:18 |     160 |-20  |
|10000038| 2012-03-13 12:10:18 |     100 |-60  |
|10000052| 2012-03-13 12:10:18 |     160 | 60  |
|10000053| 2012-03-13 12:10:18 |     160 | 0   |

注意:看表,每次都有三个数据转储到表中,并具有单独的资源ID。如何找到差异?

最佳答案

您可以使用 LAG() 函数,它可以让您知道上一条记录的值。
在你的情况下,

lag(data, 1) over (order by time) as previou_val
将显示以前的数据!

关于mysql - 计算Mysql中前一条记录和当前记录的差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9679782/

10-15 13:58