Шаг данных SAS/SQL выбирает последнюю запись из нескольких записей с одинаковым идентификатором

Например, у меня есть набор данных, как показано ниже:

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

Как с помощью datastep или sql получить запись с id = 1 и последней датой 01/01/2002? Помощь приветствуется и заранее благодарна.


person Luke Henz    schedule 03.06.2013    source источник


Ответы (4)


Попробуйте этот sql.

select id,max(Date)
from yourtable
group by id;
person Ankur Trapasiya    schedule 03.06.2013
comment
Большое спасибо за вашу помощь, я забыл о max() и group by. - person Luke Henz; 03.06.2013

Если вы хотите, чтобы вся запись и данные были отсортированы, как показано (по идентификатору и дате по убыванию), вы можете использовать этот шаг данных:

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

Это даст вам самую последнюю запись для каждого идентификатора.

person BellevueBob    schedule 03.06.2013

ты можешь попробовать:

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

Вы также можете попробовать это

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