检测SAS中最大变量值的最快方法是什么?

时间:2015-05-18 11:00:49

标签: sas enterprise-guide

我试图找到一种有效的方法来检测日期变量的最大值。我将每天收到的数据的一个警告是日期被记录为文本。

我通常会按以下方式进行:

proc sql noprint ;
 select MAX(MDY(input(SUBSTRN(MyDate, 6, 2),2.), input(SUBSTRN(MyDate, 9, 2),2.), input(SUBSTRN(MyDate, 1, 4),4.))) as max_date FORMAT=date9.
 into :max_date
 from FooData;
quit;

在这种情况下,数据包含超过100米的行,并且每天运行此代码似乎很麻烦。有人能想出更有效的方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

YYYYMMDD的优点在于,当您将其排序为字符串时,它最终也会被排序为日期(与MM / DD / YY不同)。所以只需要max()

答案 1 :(得分:1)

通过使用单个信息来读取日期而不是3个子字符串计算,您当然可以简化select语句。它显然需要为每条记录执行此操作,因此它仍然会减慢速度,但希望不会像目前那样多。

proc sql noprint ;
 select MAX(input(mydate,yymmdd10.)) as max_date FORMAT=date9.
 into :max_date
 from FooData;
quit;