SAS数据步/ SQL从具有相同ID的多个记录中选择最新记录

时间:2013-06-03 04:43:34

标签: sql sas proc-sql datastep

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

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的记录? 我们非常感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

试试这个sql。

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

你可以尝试:

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

答案 3 :(得分:2)

你也可以试试这个

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

答案 4 :(得分:0)

/*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;