반응형
본 포스트에서는 조회한 집합들을 합칠 때 사용하는 UNION과 UNION ALL에 대해서 살펴본다. 두 가지 데이터 셋을 하나의 셋으로 이어붙여주던 JOIN과 어떤 점에서 다른지 살펴보면 좋을 것 같다.
UNION & UNION ALL
01 UNION : 중복을 제거하고 합치는
두 개의 각각의 테이블에 공통된 칼럼들이 있을 때 이들을 합쳐서 보고 싶을 수 있다. 마치 하나의 테이블이었던 것 처럼. 이럴 때 이용하는 것이 UNION이다. 우선 UNION을 어떻게 작성하는지 살 펴 본다.
SELECT COL1, COL2
FROM TABLE_01
UNION
SELECT COL1, COL2
FROM TABLE_O2
;
이렇게 되면 첫 번째 쿼리 문에서 얻어진 COL1, COL2로 이루어진 테이블 밑에 이어서 두 번째 쿼리문의 결과가 이어 붙어진다. 따라서 마치 하나의 테이블이었던 것 처럼 된다. 다시 말에 같은 칼럼 밑에 열 데이터들을 이어 붙여서 합친다. 이것이 공통 데이터를 기준으로 칼럼을 추가하여 합치던 JOIN과의 차이점이다.
EXAMPLE
한 회사에서 각각의 프로젝트를 진행하던 두 팀이 합쳐지면서 각각 수집한 고객 리스트를 합치도록 했다. 이 때 고객 리스트는 이름과 전화번호로 이루어져 있는데, 중복을 제거한 고객 리스트를 만들어 주세요.
SELECT NAME, TEL
FROM PROJECT_A
UNION
SELECT NAME, TEL
FROM PROJECT_B
;
02 UNION ALL : 있는 그대로를 가져다 붙이는
UNION의 방식에서 중복된 자료를 지우지 않고 있는 그대로 붙이고 싶을 때는 UNION 뒤에 ALL을 붙여주면 된다.
SELECT COL1, COL2
FROM TABLE_1
UNION ALL
SELECT COL2, COL2
FROM TABLE_2
;
이럴 경우 각 쿼리문이 가지고 있던 고유 형태를 유지한 체로 데이터를 이어 붙일 수 있다.
EXAMPLE
3개 학급의 수학 성적을 취합하려고 한다. 이 때 개인정보를 보호하는 차원에서 번호와 점수만 합치기로 했다. 이 때 학생들의 번호와 점수 리스트를 뽑아주세요.
SELECT STU_NUM, MATH_TEST
FROM CLASS_01
UNION ALL
SELECT STU_NUM, MATH_TEXT
FROM CLASS_02
UNION ALL
SELECT STU_NUM, MATH_TEXT
;
반응형
'ICT > SQL' 카테고리의 다른 글
SQL 문법 | 데이터 조회 및 필터 | EXCEPT (FEAT. MINUS) (0) | 2021.09.16 |
---|---|
SQL 문법 | 데이터 조회 및 필터 | INTERSECT (0) | 2021.09.15 |
SQL 문법 | 데이터 조회 및 필터 | CUBE (0) | 2021.09.13 |
SQL 문법 | 데이터 조회 및 필터 | ROLL UP (0) | 2021.09.13 |
SQL 문법 | 데이터 조회 및 필터 | GROUPING SETS (0) | 2021.09.12 |
댓글