BookmarkSubscribeRSS Feed

[SQL 6-3] OUTER UNION 집합연산자(OUTER UNION Set Operator)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 202

[SQL 6-3] OUTER UNION 집합연산자 (OUTER UNION Set Operator)

안녕하세요^^

이번 시간에는 OUTER UNION(아우터 결합) 집합 연산자를 사용하는 방법에 대해 살펴보겠습니다.

                                                 

이번 시간의 목표는 다음 세 가지입니다.

  1. OUTER UNION 집합 연산자를 사용할 때 SQL 프로세스 알기
  2. OUTER UNION 집합 연산자 사용하기
  3. OUTER UNION 집합 연산자와 전통적인 SAS 프로그래밍 비교하기

 

 먼저 OUTER UNION 집합 연산자를 사용할 때 수행되는 SQL 프로세스를 보겠습니다.

OUTER UNION 연산자의 프로세스를 보기 위한 Business Scenario는 다음과 같습니다.

 Business Scenario는 교육 A 그리고/또는 B를 수료한 직원들은 누구이며 교육 시작일/종료일은 언제인지에 대한 보고서를 생성하는 것입니다.

OUTER UNION 연산자의 프로그램 형식은 다음과 같습니다.

 

 

SE22017011711544070.jpg

 

 

예제로 사용할 자료는 아래에서 확인할 수 있듯이 train_a(교육A) train_b(교육B) 데이터셋입니다.

 

SE22017011711560670.jpg          SE22017011711562470.jpg

 

SE22017011711563370.jpg          SE22017011711564070.jpg

 

교육A는 하루 과정이고 교육B는 일정 기간이 소요되는 과정입니다.

따라서 train_a에는 교육받은 날짜 변수가 하나이고 train_b에는 두 개의 날짜변수(시작&종료)가 있는 것을 확인할 수 있습니다.

 

 

OUTER UNION 연산자를 사용했을 때 “Default” 처리과정을 살펴보겠습니다.

 OUTER UNION 연산자의 행(Rows) 처리과정

- 두 중간 결과 셋의 행을 위아래로 결합한 후, 중복되는 행은 최종 결과 셋에서 제거합니다.

 OUTER UNION 연산자의 열(Columns) 처리과정

- 두 중간 결과 셋의 모든 열(변수)을 가져오며, 변수 명이 같더라도 하나의 변수로 통합되지 않습니다.

 

 

그럼 예제 자료를 활용하여 OUTER UNION 연산자를 실행해보겠습니다.

 

SE22017011711585170.jpg          SE22017011711585870.jpg

 

결과를 보면 train_a와 train_b 각 자료 변수의 합만큼 생성된 것을 확인할 수 있습니다.

여기서 한 가지 문제는 고유번호인 ID가 두 개의 변수로 분리되어 있다는 점입니다.

 

고유번호 ID를 하나의 변수로 결합하기 위해서는 Modifier CORR가 필요한데요, 아래에서 바로 확인해보도록 하겠습니다.

 

 

▶ Modifier를 사용했을 때의 OUTER UNION 연산자의 처리방식은 어떻게 달라질까요?

 

 CORR Modifier를 사용했을 때 처리방식

- 두 중간 결과 셋의 모든 변수(열)를 선택한 후, 중복되는 변수는 하나의 열로 통합합니다.

 

 ALL Modifier를 사용했을 때 처리방식

- ALL Modifier는 OUTER UNION 연산자의 기본(default) 수행방식이므로, 추가적으로 ALL Modifier를 코딩하여 적용할 수는 없습니다.(즉, outer union 자체가 ALL Modifier의 수행방식과 같습니다.)

 

 

CORR Modifier를 사용하여 OUTER UNION 연산자를 실행하겠습니다.

 

SE22017011712001470.jpg          SE22017011712004670.jpg

 

결과를 보시면 train_a와 train_b의 각 ID가 하나의 변수로 결합된 것을 확인할 수 있습니다.

 

 

 

 어떤 DATA step statement가 OUTER UNION 연산자와 같은 결과를 생성할까요?

 

a) MERGE

b) APPEND

c) SET

d) STACK

 

 

 

정답은 c) SET 입니다.

 

 

SE22017011712015070.jpg          SE22017011712020370.jpg

 

SET statement를 사용하여 OUTER UNION 연산자를 사용했을 때와 같은 결과를 얻을 수 있습니다.

 

 

 

 

 

이상 OUTER UNION 집합 연산자에 대해 살펴보았습니다.

 

감사합니다 ^^

 

 

 

Version history
Last update:
‎06-17-2020 12:51 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags