我想在视图中添加一个列,该列保存Value列的累计值。当行中的Cat A或Cat B发生变化时,此列必须重置累计值。因此,输出数据必须是这样的:
CAT A CAT B Value Running Total
===== ===== ===== =============
0 1 15
0 1 235
0 1 306 556
0 0
1 2 85 85
1 1 105 105
0 2 600
0 2 70 670
0 3 564
0 3 101 665
0 1 30 30
2条答案
按热度按时间ht4b089n1#
首先,您需要一个列来指定运行总和的顺序。我假设它被称为
id
。第二,您似乎有一些逻辑在某些行上没有值。不清楚这个逻辑是什么。将在所有行上定义适当的“运行和”。
然后,您可以使用
lag()
和sum()
来定义组,并使用“分析”sum()
来进行求和:mspsb9vt2#
分区中的重置可以通过引入一个新列来实现,该列将启用分区拆分。在您的情况下,如果您创建一个新列,该列具有基于CAT A或CAT B更改的唯一值,这将允许您在子集级别运行分析函数,您的分区将包括您已经使用的一个+这个新列.