如何在 SQL 查询中引用前一行的计算值?在我的情况下,每一行都是一个事件,以某种方式操作前一行的相同值。
原始数据如下所示:
有什么想法吗?需要一个可以给我累积总和的分析函数,但是却提供了一个可以访问前一个值的函数。
先谢谢你!
原始数据如下所示:
Eventno Eventtype Totalcharge 3 ACQ 32 2 OUT NULL 1 OUT NULL假设每个 Eventtype=OUT 都应该将前一行 totalcharge 的值减半,并显示在名为 Remaincharge 的列中:
Eventno Eventtype Totalcharge Remaincharge 3 ACQ 32 32 2 OUT NULL 16 1 OUT NULL 8我已经尝试使用 LAG 分析函数,但它不允许我从上一行获取计算值。尝试了像这样的东西:
LAG(remaincharge, 1, totalcharge) OVER (PARTITION BY ...) as remaincharge
但这行不通,因为找不到 remaingcharge。有什么想法吗?需要一个可以给我累积总和的分析函数,但是却提供了一个可以访问前一个值的函数。
先谢谢你!
case
,并使用rank - 1
来获取OP请求的结果http://www.sqlfiddle.com/#!4/c7eda/13 - A.B.Cade