如何为现有数据集创建一个新列,该数据集是一个现有列的运行总数-由某些标识符分区?
ID | Value | New Value ---|--------|-------------------- 1 | 10 | 10 1 | 5 | 15 = 10 + 5 1 | 3 | 18 = 10 + 5 + 3 2 | 45 | 45 2 | 15 | 60 = 45 + 15
我曾经在SQL(Oracle)中使用简单的SUM()OVER()语句来完成此操作,但是显然PROC SQL不支持该语法。
如果可能的话,我想在PROC SQL中完成此工作(我对SQL的经验比对SAS编码的经验要多得多)。
谢谢!
麦克风。
乔-您的答案出于任何原因都没有用,但是却使我处于正确的轨道上以找出答案。谢谢!
data want; set have; by id; if first.id then running_total = 0; if first.id then retained_total = 0; running_total = retained_total + value; retained_total = running_total; retain retained_total; run;