EXCLUSIVE UNION 은 '배타적 합집합' 이라고 표현할 수 있습니다.
'배타적 합집합'을 쉽게 설명하면 Data Set A와 Data Set B가 있을 경우 공통 영역(A∩B)은 제외하고, A에만 있거나 B에만 있는 데이터들을 모은 결과값을 출력합니다.
SAS의 PROC SQL에는UNION, INTERSECT, EXCEPT 가 있지만 배타적 합집합을 수행하는 키워드는 없습니다. (SQL 표준 구문에도 없습니다.)
그래서 EXCEPT 와 UNION 을 같이 Syntax에 써서 배타적 합집합을 표현할 수 있습니다.
■ 활용 데이터
data DATA1;
length name $10 dept $10;
input name $ dept $ age;
datalines;
김제니 영업 28
안유진 개발 31
박지훈 인사 26
;
run;
data DATA2;
length name $10 dept $10;
input name $ dept $ age;
datalines;
최유진 마케팅 29
안유진 개발 31
최예원 영업 33
;
run;
■ 예제
proc sql;
(select * from data1
except
select * from data2)
union
(select * from data2
except
select * from data1);
quit;
(select * from data1
except
select * from data2)
SQL 문의 첫번째 문을 쉽게 설명하면, EXCEPT 문을 활용해 DATA1 - DATA2 결과값을 출력합니다.
(select * from data2
except
select * from data1);
SQL 문의 두번째 문을 쉽게 설명하면, EXCEPT 문을 활용해 DATA2 - DATA1 결과값을 출력합니다.
EXCEPT 문을 활용해 각 데이터셋의 차이만 출력하고 UNION 문을 활용해 공통의 데이터인 '안유진 개발 31'의 데이터만 제외하고 서로 다른 데이터만 출력하는 것 입니다.
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →