SAS在组内排序

时间:2015-05-27 20:46:03

标签: sorting group-by sas

我想尝试按下降事件数量和最新日期对这些数据进行排序,按ID分组

我试过proc sql;

    proc sql; 
    create table new as
    select *
    from old
    group by ID
    order by events desc, date desc;
    quit;

我目前得到的结果是

    ID  Date    Events
    1   09/10/2015  3
    1   27/06/2014  3
    1   03/01/2014  3
    2   09/11/2015  2
    3   01/01/2015  2
    2   16/10/2014  2
    3   08/12/2013  2
    4   08/10/2015  1
    5   09/11/2014  1
    6   02/02/2013  1

虽然日期和事件按降序排序。具有多个事件的ID不再分组。

是否有可能以更少的步骤实现以下目标?

    ID  Date    Events
    1   09/10/2015  3
    1   27/06/2014  3
    1   03/01/2014  3
    3   01/01/2015  2
    3   08/12/2013  2
    2   09/11/2015  2
    2   16/10/2014  2
    4   08/10/2015  1
    5   09/11/2014  1
    6   02/02/2013  1

由于

1 个答案:

答案 0 :(得分:0)

我认为你喜欢按照降序事件进行排序,然后按照最早或最晚的日期排序(我不能告诉您解释中的哪一个),还要降序,然后按id 。在proc sql查询中,您可以尝试计算Date变量的最小值或最大值,按事件和id分组,然后按降序事件,日期的下降最小值/最大值和id对结果进行排序。