我有一个课程项目数据,并且正在计算过去30天内每笔交易到此交易所花费的平均金额。平均每笔交易花费在此交易上的每月交易
例如,我在2014年6月24日发生了一笔交易,我希望在此交易之前查找过去30天内的账户总花费(24月24日24日),并将其除以在此时间段内的交易。我需要为每笔交易执行此操作。
数据的模样alltran:
obs tran_date tran_amt mechr_cate_cd
1 05/04/14 5.32 4633
2 05/06/14 8.97 5846
3 06/02/14 10.13 7996
我想输出看起来像
obs tran_date tran_amt mechr_cate_cd avg_amt30
1 05/04/14 5.32 4633 5.32
2 05/06/14 8.97 5846 7.15
3 06/02/14 10.13 7996 8.14
我想在PROC SQL中使用相关子查询:
proc sql;
create table sub as
select tran_date tran_amt
from alltran;
run;
proc sql;
select * from alltran a
where exists
(select avg(tran_amt) as avg_amt30 from sub b
where a.tran_date-30<=b.tran_date<=a.tran_date);
run;
我还没有机会测试它,但这是我的想法,非常感谢你!
当然有办法做到这一点,但你应该先向我们展示你自己到底是什么,以便你可以从那里引导。堆栈溢出不是按需服务的代码;我们会帮助您处理您的代码,而不是为您写信。请阅读[帮助],[mcve](http://stackoverflow.com/help/mcve) – indivisible
如果您即将使用,请不要将代码粘贴到评论部分,只需使用新信息编辑原始问题即可。 (并记住在所有行之前加上4个空格或突出显示粘贴的代码并点击格式化按钮) – indivisible