Skip Headers

오라클 / PROC SQL / DATA STEP

이블 결합
프 로 그 램 비 교

Go to Documentation Home
HOME
Go to Book List
PRO_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
TABLE JOIN
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

8. 교집합 세로결합(INTERSECT)


- INTERSECT는 두 행의 집합중 공통된 행을 반환

- 두개의 테이블에 모두 속하는 행집합을 결과 집합으로 반환한다. INTERSECT연산에서 테이블의 순서를 바꾸어도 결과 집합은 동일.

- CORR(CORRESPONDING) 옵션은 두 개의 테이블에서 공통 변수를 사용.

- ALL 옵션은 중복 제거 없이 세로 결합.


1. INTERSECT

1. INTERSECT

MAIN

- BACK1테이블 과 BACK2테이블의 세로 결합시 모든 관측치가 공통된 값 출력.


 1) 오라클

SELECT * FROM BACK1 A

INTERSECT

SELECT * FROM BACK2 B;

NAME   KEY

양혜수 140

2) PROC SQL

PROC SQL;

  CREATE TABLE INTERSECT1 AS

    SELECT * FROM BACK1 A

    INTERSECT

    SELECT * FROM BACK2 B;

QUIT;

name    key

양혜수 140

3) PROC SQL

- 두개 테이블에서 공통변수 NAME에 대하여 교집합.

- NAME변수의 공통 교집합 '백승민','양혜수' 출력

PROC SQL;

  CREATE TABLE INTERSECT1 AS

    SELECT * FROM BACK1 A

    INTERSECT CORR

    SELECT * FROM BACK2 B;

QUIT;

name

백승민

양혜수

4) PROC SQL

- 두개 테이블에서 세로 교집합 출력시 중복 제거 없이 출력.

PROC SQL;

  CREATE TABLE INTERSECT2 AS

    SELECT * FROM BACK11 A

    INTERSECT ALL

    SELECT * FROM BACK22 B;

QUIT;

name    key

양혜수 140

양혜수 140

5) PROC SQL

- 두개 테이블에서 세로 교집합 출력시 공통된 변수 NAME기준으로 중복 제거 없이 출력.

PROC SQL;

  CREATE TABLE INTERSECT2 AS

    SELECT * FROM BACK1 A

    INTERSECT ALL CORR

    SELECT * FROM BACK2 B;

QUIT;

name

백승민

양혜수

6) DATA STEP

DATA INTERSECT3;

 SET BACK1 BACK2(RENAME=(JUMSU=KEY));

     BY NAME KEY;

     IF FIRST.KEY NE 1 AND LAST.KEY;

RUN;

name    key

양혜수 140

맨 위로 이동 맨 위로 이동