: 내가 가진 geogkeys 세 가지 기록 각을 얻을 그래서이 두 데이터 세트를 병합하려면 어떻게병합 데이터 세트
ID Temp Date
1 95 1
1 100 2
1 105 3
2 10 1
:
ID Geogkey
1 A
1 B
1 C
2 W
2 R
2 S
다른 데이터 세트 B를 id = 1이고 geogkeys에 대한 각각의 레코드는 id = 2일까요? 당신이 직교을 원하는 가정
: 내가 가진 geogkeys 세 가지 기록 각을 얻을 그래서이 두 데이터 세트를 병합하려면 어떻게병합 데이터 세트
ID Temp Date
1 95 1
1 100 2
1 105 3
2 10 1
:
ID Geogkey
1 A
1 B
1 C
2 W
2 R
2 S
다른 데이터 세트 B를 id = 1이고 geogkeys에 대한 각각의 레코드는 id = 2일까요? 당신이 직교을 원하는 가정
가 너무 큰 아니라면 당신은 SQL에서 그렇게 떨어져 최고 가입 :
proc sql;
create table C as
select * from A,B
where A.ID=B.ID
;
quit;
셀렉트 * ID를 변수를 덮어 쓰는 것을 경고를 생성합니다; 그게 걱정된다면 선택 (select A.ID, A.Geogkey, B.Temp, B.date
)을 명기하십시오.
단일 병합 성명으로이 작업을 수행 할 수 있습니까? 나는 SQL이 병합보다 덜 효율적이라는 것을 알고있다. – lord12
반드시 정확하지는 않습니다. 이 경우 SQL은 데이터가 너무 많지 않으면 효율적일 수 있습니다. 병합은 이와 같은 데카르트 조인을 처리 할 수 없습니다. 프로그램하기가 더 복잡한 키 설정 문을 사용해야합니다. 데이터를 처리 할 수 없다는 것을 알지 않는 한 SQL을 사용합니다. – Joe
아닙니다. 데이터 단계에서이 작업을 수행 할 수 있지만 행을 루핑하여 수행합니다. 'proc sql' 해결책을 고수하십시오. –
그래서 1/A/95/1 1/A/100/2 1/A/105/3 1/B/95/1 1/B/100/2 등을 원하십니까? – Joe
@Joe Right thats correct – lord12