全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1195 2
2019-02-20
比如某个促销活动数据明细如下:<br>
客户     交易时间     交易金额<br>
张三    2019-1-10    500<br>
张三    2019-1-11    500<br>
张三    2019-1-11    4000<br>
张三    2019-1-12    200<br>
李四    2019-1-2      5000<br>
王五    2019-1-20    400<br>
王五    2019-1-21    1000
我要统计消费到达1500的客户,并把达到条件那天日期取出来,如下:
客户     交易总额     达到条件的日期<br>
张三     5200            2019-1-11<br>
李四     5000            2019-1-2<br>
王五     1400           
要用到宏吗?怎么用呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-2-21 12:58:31
data data1;
input name $ date yymmdd10. amount;
cards;
A 2019-1-10 500
A 2019-1-11 500
A 2019-1-11 4000
A 2019-1-12 200
B 2019-1-2  5000
C 2019-1-20 400
C 2019-1-21 1000
;
run;

proc sort data=data1;
by name date;
quit;

data data2;
        set data1;
        by name;
        retain sum;
        if first.name then sum=0;
        sum+amount;
        if sum>=1500 then output;
run;

proc sql;
create table data3 as
select name, sum(amount) as total_amount from data1
group by name;
run;

proc sort data=data2 nodupkey;
by name;
quit;

proc sql;
        create table data4 as
        select a.name, a.total_amount, b.date
        from data3 as a left join data2 as b
        on a.name=b.name;
quit;

proc print data=data4;
        format date yymmdd10.;
quit;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-2-21 23:23:28
西風の碧樹 发表于 2019-2-21 12:58
data data1;
input name $ date yymmdd10. amount;
cards;
谢谢您的解答,明天我试试您的方法
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群