楼主: 小鳄鱼a
20019 13

如何对变量加总求和 [推广有奖]

11
cnwz 发表于 2014-9-1 08:16:11
小鳄鱼a 发表于 2014-8-30 10:36
sql 那个结果怎么才能输出到数据集中
在SELECT之前加入 CREATE TABLE one(year NUMERIC, dadtunit CHARACTER, dcost NUMERIC) AS
已有 1 人评分论坛币 热心指数 收起 理由
小鳄鱼a + 5 + 1 精彩帖子

总评分: 论坛币 + 5  热心指数 + 1   查看全部评分

12
168lijijie 发表于 2015-8-4 16:17:00
quekehanmu 发表于 2014-8-30 10:56
proc sort data=你的数据 out=a;
        by dadtunit year;
run;
楼主是要求每个dadtunit 中不同年份对应的dcost的累计和吗?
我这里有个简单的例子你可以试下,如果结果符合你的要求,可以再转化为你的数据集:
data a;
        input dadtunit        year dcost;
        output;
        cards;
        1        2005 1
        1        2006 2
        1        2007 3
        2        2013 4
        2        2014 1
        2        2014 3
        2        2015 0
        3        2000 12
        3        2001 2
        3        2003 3
        ;
run;

proc sort data=a;
        by dadtunit year;
run;

data b;
        set a;
        by dadtunit year;
        retain sum_dcost;
        if first.dadtunit then sum_dcost=dcost;
    else   sum_dcost=sum_dcost+dcost;
run;

proc print data=b;
run;

结果如下:
                                  The SAS System         11:33 Tuesday, August 4, 2015   3

                                                                          sum_
                            Obs    dadtunit    year    dcost    dcost

                              1        1       2005       1        1
                              2        1       2006       2        3
                              3        1       2007       3        6
                              4        2       2013       4        4
                              5        2       2014       1        5
                              6        2       2014       3        8
                              7        2       2015       0        8
                              8        3       2000      12       12
                              9        3       2001       2       14
                             10        3       2003       3       17

13
626747991 发表于 2017-2-11 09:37:51
谢谢,有收获

14
ouaiui 发表于 2019-6-13 15:52:12
代码好用,非常感谢,还可以继续分组:
PROC SQL;
create table a as
SELECT  year, group1, group2, SUM(marketvalue)
from b
GROUP BY year, group1, group2
ORDER BY year, group1, group2 ;
QUIT;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 11:16