如何在下一列中添加列值

时间:2017-04-04 11:24:42

标签: sql db2

id        value
1          10
2          20
3          30
4          40
5          50

必需的输出

表名数据。

 id       value 
1         10    //( 10+0(previous value))
2         30   //( 20+10(previous value))
3         50   //( 30+20(previous value))
4         70   //( 40+30(previous value))
5         90    //(50+40(previous value))

请提供sql查询

3 个答案:

答案 0 :(得分:1)

您正在寻找标准SQL的$scope.gridCsvExportPlugin.init($scope, $scope.searchResult.ngGrid, $scope.searchResult.$gridServices); ,如果我没有弄错的话,应该可以在以后的DB2版本中使用。

LAG

如果select id, value + coalesce( lag(value) over (order by id), 0 ) as value from mytable order by id; 不可用,LAG OVER可能是:

SUM OVER

答案 1 :(得分:0)

解决方案1:

select f1.id, 
ifnull((select f2.value from yourtable f2 where f1.id - 1 =f2.id), 0) + f1.value as value
from yourtable f1

答案 2 :(得分:0)

解决方案2:

select f1.id, 
ifnull(f3.value, 0) + f1.value as value
from yourtable f1
left outer join lateral
(
    select f2.value from yourtable f2 
    where f1.id - 1 =f2.id
) f3 on 1=1