我有一個課程項目數據,並且正在計算過去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