BookmarkSubscribeRSS Feed

OUTER UNION

Started yesterday by
Modified yesterday by
Views 58

SAS에서는 데이터셋을 합칠 때, UNION 과 UNION ALL을 많이 사용하지만 칼럼의 갯수, 순서, 데이터 타입이 동일해야합니다.

OUTER UNION의 경우 두 개 이상의 테이블 SELECT 문을 사용해서 칼럼의 갯수, 순서, 데이터 타입이 달라도 단순히 연결하는 연산자입니다.

 

 

■ OUTER UNION 기본 Syntax

 

proc sql;
    title 'OUTER UNION';
    select *
    from math
    outer union
    select *
    from read;
quit;

 

 

 

 

 

■ OUTER UNION 예시

 

data math_data;
    input student $ math_score;
    datalines;
김제니 90
안유진 85
장원영 95
;
run;

data english_data;
    input student $ english_score;
    datalines;
김제니 88
카리나 92
윈터 87
;
run;

 

위는 math_data와 english_data 2개의 데이터셋입니다.

student 칼럼만 동일하고 math_score , english_score 이라는 칼럼이 각각 있습니다.

 

 

 

proc sql;
    select *
    from employee_A
outer union
    select *
    from employee_B;
quit;

 image.png

 

 

 

위 출력값을 보면 두 테이블의 SELECT 문을 위아래로 이어 붙이지만 컬람은 각각 유지합니다.

그래서 첫번째 테이블의 행이 두번째 테이블의 컬럼이 없기 때문에 결측값(.)으로 채웁니다.

 

 

■ OUTER UNION - CORR

 

같은 이름의 컬럼끼리 자동으로 겹치게 합니다.

이 때, CORR 은 Corresponding Columns 의 약어입니다.

CORR 옵션을 사용하게 되면 비교하려는 테이블에서 공통된 칼럼은 하나로 합쳐지고 각 차이나는 칼럼이 옆으로 합쳐지면서 그대로 각 테이블에 없는 값들은 결측값으로 채워지게 됩니다.

 

proc sql;
    select *
    from math_data
outer union CORR
    select *
    from english_data;
quit;

 image.png

 

Contributors
Version history
Last update:
yesterday
Updated by:

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
Article Labels
Article Tags