我正在尝试从下面的观察组中选择所有最近的日期
完整数据
ID Date <br/>
1 02/01/2015 <br/>
1 02/01/2015 <br/>
1 02/01/2015 <br/>
1 01/01/2015 <br/>
1 01/01/2015 <br/>
1 01/01/2015 <br/>
2 04/01/2014 <br/>
2 04/01/2014 <br/>
2 04/01/2014 <br/>
2 05/01/2014 <br/>
2 05/01/2014 <br/>
2 05/01/2014 <br/>
我试过IF.FIRST&amp;最后等等。但是我只是保持得到第一个障碍物......
错误的数据
ID Date <br/>
1 02/01/2015 <br/>
2 04/01/2014 <br/>
我所追求的是......
子集数据
ID Date <br/>
1 02/01/2015 <br/>
1 02/01/2015 <br/>
1 02/01/2015 <br/>
2 04/01/2014 <br/>
2 04/01/2014 <br/>
2 04/01/2014 <br/>
希望有人可以帮忙!
非常感谢!
答案 0 :(得分:1)
您可以使用proc sql
执行此操作。 SQL语句是:
select t.*
from fulldata t
where t.date = (select max(t2.date) from fulldata t2);
编辑:
如果您想要每id
的最大日期,只需使用相关的子查询:
select t.*
from fulldata t
where t.date = (select max(t2.date) from fulldata t2 where t2.id = t.id);
答案 1 :(得分:0)
此解决方案可能适用于您已经拥有的内容。获取您的WrongData并与FullData合并以获得所需的输出。
data Want;
merge FullData WrongData (in=A);
by id date;
if A;
run;