当前位置: 首页 > 面试题库 >

SAS中的分区运行总计

竺勇
2023-03-14
问题内容

如何为现有数据集创建一个新列,该数据集是一个现有列的运行总数-由某些标识符分区?

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;


 类似资料:
  • 本文向大家介绍总结MySQL的分区,包括了总结MySQL的分区的使用技巧和注意事项,需要的朋友参考一下 前言      分区是指根据一定的规则将一个大表分解成多个更小的部分,这里的规则一般就是利用分区规则将表进行水平切分;逻辑上没有发生变化但实际上表已经被拆分成了多个物理对象,每个分成被划分成了一个独立的对象。相对于没有分区的当个表而言分区的表有很多的优势包括: 并发统计查询、快速归档删除分区数据

  • 本文向大家介绍Ruby中区分运行来源的方法,包括了Ruby中区分运行来源的方法的使用技巧和注意事项,需要的朋友参考一下 当我们在写模块的时候,或多或少需要直接运行这个文件也可以执行一些方法,但是这样对于当这个模块被require或者include时,显得不好,在ruby里,有没有区分运行来自当前文件,还是被require的目标文件调用呢? Python可以 比如像Python这样 Ruby当然也可

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列以显示运行总计: 这可能吗? 问题答案: 也许对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一些数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行中的total变量,否则您将只获得一列NULL值。

  • 本文向大家介绍区分净营运资金和总营运资金。,包括了区分净营运资金和总营运资金。的使用技巧和注意事项,需要的朋友参考一下 净营运资金和总营运资金之间的主要区别如下- 净营运资金 本质上是定性的。 告知公司是否可以满足其运营费用和流动负债。 营运资金净额是流动负债与流动负债之差的结果。 用于会计系统的概念。 适用于合伙企业和个体经营者。 显示公司的财务状况。 公司净营运资金增加时,留存利润和资产出售增

  • 问题内容: 想象一下下表(称为): 我想要一个按日期顺序返回运行总计的查询,例如: 我知道在SQL Server 2000/2005/2008中可以通过多种方式进行此操作。 我对使用aggregating-set-statement技巧的这种方法特别感兴趣: …这是非常有效的,但是我听说周围存在一些问题,因为您不一定能保证该语句将以正确的顺序处理行。也许我们可以获得有关该问题的明确答案。 但是,人

  • 问题内容: 我有这个MySQL查询: 返回如下内容: 我真正想要的是末尾的另一列显示运行总计: 这可能吗? 问题答案: 也许这对您来说是一个更简单的解决方案,并且可以防止数据库不得不执行大量查询。这仅执行一个查询,然后在一次通过中对结果进行一点数学运算。 这将为您提供一个额外的RT(运行总计)列。不要错过顶部的SET语句来首先初始化运行的total变量,否则您将只获得一列NULL值。