使用proc sql的极值

时间:2017-08-02 01:20:42

标签: sas

我有一个杂货店顾客的数据集,其中包括姓名,顾客ID,性别,出生日期,顾客类型等信息。

DOB的格式为DDMMMYYYY,例如25JAN1990。

客户类型包括在线购物者,黄金会员,银卡会员等

我需要打印一个表,使用PROC SQL为每个客户类型标识最年轻和最老的客户。我不知道从哪里开始。我对按客户类型进行分组以及在日期使用max和min函数有一个粗略的想法,但我不确定这是否有效或是否可以实现它。

-O1

1 个答案:

答案 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