SAS sql 是否有任何 PERIOD 数据类型?
Is there any PERIOD datatype for SAS sql ?
我有以下table人运行一场马拉松
person start end
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
我想知道某个人是否在每个月的 1 号 "running the marathon"。所需的 table 应如下所示
person running on
mike 1-Jul-14
mike 1-Aug-14
nike 1-Aug-14
mini 1-Aug-14
mini 1-Sep-14
... for all other months
在 SAS proc sql
中有什么方法可以得到这个结果。其他 dbms 有这个(Teradata,Oracle)。在 SAS 中最好的方法是什么?
我会使用 DATA STEP 在 SAS 中解决这个问题。
data have;
input person $ from :anydtdte. to :anydtdte.;
format from to date11.;
datalines;
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
;
run;
data want(keep=person running_on);
set have;
format Running_on date11.;
do Running_on=from to to;
if day(running_on) = 1 then
output;
end;
run;
我有以下table人运行一场马拉松
person start end
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
我想知道某个人是否在每个月的 1 号 "running the marathon"。所需的 table 应如下所示
person running on
mike 1-Jul-14
mike 1-Aug-14
nike 1-Aug-14
mini 1-Aug-14
mini 1-Sep-14
... for all other months
在 SAS proc sql
中有什么方法可以得到这个结果。其他 dbms 有这个(Teradata,Oracle)。在 SAS 中最好的方法是什么?
我会使用 DATA STEP 在 SAS 中解决这个问题。
data have;
input person $ from :anydtdte. to :anydtdte.;
format from to date11.;
datalines;
mike 2-Jun-14 2-Aug-14
nike 3-Jul-14 9-Aug-14
mini 1-Aug-14 3-Nov-14
;
run;
data want(keep=person running_on);
set have;
format Running_on date11.;
do Running_on=from to to;
if day(running_on) = 1 then
output;
end;
run;