2014-07-26 4 views
0

SAS에 익숙하지 않으며 큰 데이터 세트로 각 ID 그룹의 데이터가있는 열을 작성하고 있습니다. 내 데이터 세트의 단순화 된 형태는 다음과 같습니다행을 집계하는 SAS SQL

ID 이름

1 AAA 
1 AAA 
1 BBB 
2 CCC 
2 CCC 
2 AAA 
3 DDD 
3 BBB 
3 AAA 
4 BBB 
4 BBB 

내가 찾고 있어요 결과는 다음과 같습니다

ID 이름 NEW_ID

1 AAA  AAA, BBB 
1 AAA  AAA, BBB 
1 BBB  AAA, BBB 
2 CCC  CCC, AAA 
2 CCC  CCC, AAA 
2 AAA  CCC, AAA 
3 DDD  DDD, BBB, AAA 
3 BBB  DDD, BBB AAA 
3 AAA  DDD, BBB, AAA 
4 BBB  BBB 

당신의 도움이 크게이다 고맙습니다. 신분증 번호를 반드시 기억할 필요는 없습니다. 감사.

+0

데이터 단계에서는이를 수행 할 수 있지만 'proc sql'에서는 쉽게 수행 할 수 없습니다. –

+0

데이터베이스 란 무엇입니까? SQL 서버? –

+0

아니요. sas 데이터 세트입니다. – Tom

답변

0

단일 데이터 단계에서이를 수행하는 방법을 생각할 수 없습니다. 그러나 2는 꽤 쉽습니다. 먼저 값을 수집 한 다음 기본 데이터 세트에 다시 결합하십시오.

data first; 
set have; 
by id; 
format COL $2000.; 
retain COL; 

if ^last.id then 
    col = strip(col) || strip(name) || ","; 
else do; 
    col = strip(col) || strip(name); 
    output; 
end; 
run; 

data want; 
merge have first; 
by id; 
run;