SQL问题基于时间聚合值

时间:2012-06-18 16:36:28

标签: sql time aggregation

我需要总计值1和值2。

我有一个看起来像这样的表:

Time | Plus Value | Minus Value 2 | 
0         30           10             
10        20           15
15        10           20
...

我希望能够获得下表

Time | Plus Value | Minus Value 2 | Total
0         30           10             20           
10        20           15             25
15        10           20             15
...

我希望能够选择这样的东西

select time, plus_value, minus_value(sum(plus_value) - sum(minus_value)) as total
from table
where time <= time

我该怎么做?我被迫按时间分组,然后没有给我预期的结果。

2 个答案:

答案 0 :(得分:4)

select time,
       plus_value,
       minus_value,
       sum(plus_value - minus_value) over(order by time rows unbounded preceding) as total
from table

答案 1 :(得分:0)

我不明白你的where子句:where time <= time

无论如何,我相信你的查询可以实现如下:

select time, plus_value, minus_value, (plus_value - minus_value) as total
from table;