我有一个杂货店顾客的数据集,其中包括姓名,顾客ID,性别,出生日期,顾客类型等信息。
DOB的格式为DDMMMYYYY,例如25JAN1990。
客户类型包括在线购物者,黄金会员,银卡会员等
我需要打印一个表,使用PROC SQL为每个客户类型标识最年轻和最老的客户。我不知道从哪里开始。我对按客户类型进行分组以及在日期使用max和min函数有一个粗略的想法,但我不确定这是否有效或是否可以实现它。
-O1
答案 0 :(得分:0)
我认为此任务的重要部分是SQL命令 ,它允许您与select语句进行比较。 由于没有明确的开始数据,我自由地生产了一些。
data begin;
input ID Test $ date mmddyy10.;
cards;
001 A 09/01/2011
001 A 10/02/2011
001 A 09/12/2012
001 A 10/10/2013
001 B 10/01/2011
001 B 01/01/2012
002 A 10/12/2014
002 A 10/13/2014
002 A 02/02/2015
002 A 11/15/2015
;
run;
proc sql;
select * from begin
group by ID, test /*These are the grouping variables*/
having date=max(date) or date=min(date); /*Conditions that must be fulfilled*/
quit;
拥有和分组的更多信息:http://www.dofactory.com/sql/having