如何计算在SQLite中添加上一行值的列?

时间:2015-01-12 14:00:02

标签: sqlite

我想要做的是,当我从表中选择记录时,最后一列是两列的减法。现在在第一个记录中,最后一列(即两列的减法)将是[Value1] - [Value2],其中`[Value1]和[Value2]是表格的列。

现在第二条记录如下,

'Value of (previous row.last column) + ([Value1] - [Value2])

等下一条记录等等。

列如下,

[ID],[Value1],[Value2]

现在记录如下,

[ID]    [Value1]    [Value2]    [Result]
 1       10           5          10 - 5 = 5
 2       15           7          5 + (15 - 7) = 13
 3       100          50         13 + (100 - 50) = 63
 and so on......

1 个答案:

答案 0 :(得分:1)

SQLite不支持运行总计,但是对于您的数据和您想要的结果,可以将算法分解并编写如下查询:

SELECT t.id, t.value1, t.value2, SUM(t1.value1 - t1.value2) 
FROM table1 AS t 
JOIN table1 AS t1 ON t.id >= t1.id 
GROUP BY t.id, t.value1, t.value2

http://sqlfiddle.com/#!7/efaf1/2/0

随着行数增加,此查询将变慢。因此,如果您计划在大型表上运行此操作,则可能需要在SQLite之外运行计算。