【问题标题】:SAS datastep/SQL select latest record from multiple records with same IDSAS datastep / SQL从具有相同ID的多条记录中选择最新记录
【发布时间】:2013-05-29 05:05:28
【问题描述】:

例如我有一个数据集如下:

id Date
1  2000/01/01
1  2001/01/01
1  2002/01/01
2  2003/01/01

通过 datastep 或 sql,我如何获取 id = 1 和最新日期 2002/01/01 的记录? 感谢您的帮助,并在此先感谢您。

【问题讨论】:

    标签: sql sas proc-sql datastep


    【解决方案1】:

    试试这个 sql。

    select id,max(Date)
    from yourtable
    group by id;
    

    【讨论】:

    • 非常感谢您的帮助,我忘了 max() 和 group by。
    【解决方案2】:

    如果您想要整个记录并且数据按所示排序(按 id 和 DESCENDING 日期),您可以使用此数据步骤:

    data want;
       set have;
          by id; /* you don't need to specify date here */
       if last.id;
    run;
    

    这将为您提供每个 ID 的最新记录。

    【讨论】:

      【解决方案3】:

      你可以试试:

      proc sql;
      create table my id as
      select id,max(Date)
      from yourtable
      where id=1;
      quit
      

      【讨论】:

        【解决方案4】:

        你也可以试试

        proc sql;
        create table my id as
        select id,Date
        from yourtable
        where Date=(select max(Date) where id = 1 )
        quit
        

        【讨论】:

          【解决方案5】:
          /*Sort your data by id and descending date then*/
          
          data want;
             set have;
                by id; /* you don't need to specify date here */
             if first.id;
          run;
          

          【讨论】:

            猜你喜欢
            • 2013-05-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-08-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多