【发布时间】:2017-10-18 14:21:51
【问题描述】:
我在 SAS 程序中创建了 proc sql 查询,但需要使用 LAG 函数,它告诉我它不能在 proc sql 中使用,只能在数据步骤中使用。 代码:
proc sql;
CREATE TABLE agg_table AS
SELECT USER, MAX(TIME) AS LAST_TIME, SUM(BONUS) AS BONUS_SUM, LAG(EXPDT) AS EXPDT_LAG FROM WORK.MY_DATA GROUP BY USER_ID;
那么,我不知道如何将 proc sql 和 datastep 组合到一个查询中以获取一个表作为输出? 或者也许有更好的方法来解决整个问题? 谢谢
【问题讨论】:
-
在基本 SAS 中,我认为您不能将
sum和lag组合在一个 SQL 查询/数据步骤中,除非您想写下一个相当复杂的代码,保留一组滞后的观察。如果MY_DATA中没有可用于连接LAG(EXPDT)的行号列,例如可以先在data step 中计算LAG(EXPDT),然后在proc sql 中计算聚合列。 -
如果您需要有用的帮助来解决此问题,请包含示例输入数据和示例所需的输出数据。
-
查看 PROC EXPAND 以及对时间序列数据进行统计。
标签: sas