UNION
[연산] : 집합(sql을 통해 추출된 결과)을 하나로 합칠 때 사용한다. 중복된 데이터를 생략해 준다.
UNION ALL
[연산] : 집합(sql을 통해 추출된 결과)을 하나로 합칠 때 사용한다. 중복 된 데이터도 보여 준다.
union all이 더 많이 쓰인다.
실습
닮은 두 테이블 sales2007_1, sales2007_2를 만든다.
CREATE TABLE sales2007_1
(
name varchar(50)
,amount NUMERIC(15, 2)
);
CREATE TABLE sales2007_2
(
name varchar(50)
,amount numeric(15,2)
);
INSERT INTO sales2007_1
VALUES
('mike',150000.25)
,('jonin',132999.75)
,('mary',10000);
COMMIT;
INSERT INTO sales2007_2
VALUES
('mike',120000.25)
,('jonin',102999.75)
,('mary',10000);
COMMIT;
두 테이블 결과
간단한 합치기 3가지 - UNION
--- 전체 합치기
SELECT
*
FROM
sales2007_1
UNION
SELECT
*
FROM
sales2007_2;
--- 이름만 합치기
SELECT
name
FROM
sales2007_1
UNION
SELECT
name
FROM
sales2007_2;
--- 총액만 합치기
SELECT
amount
FROM
sales2007_1
UNION
SELECT
amount
FROM
sales2007_2
ORDER BY
amount DESC ;
합치기(유니온) 결과, 왼쪽부터 전체 합치기, 그 다음 이름만 합치기, 마지막 총액 합치기
처음은 중복된 ('mary',10000)이 없어짐
다음은 중복된 mary, jonin, mike가 하나씩 없어짐
마지막은 중복된 10000이 없어짐
간단한 합치기 3가지 - UNION ALL
--- 전체 합치기
SELECT
*
FROM
sales2007_1
UNION ALL
SELECT
*
FROM
sales2007_2;
--- 이름만 합치기
SELECT
name
FROM
sales2007_1
UNION ALL
SELECT
name
FROM
sales2007_2;
--- 총액만 합치기
SELECT
amount
FROM
sales2007_1
UNION ALL
SELECT
amount
FROM
sales2007_2
ORDER BY
amount DESC ;
--- ORDER BY는 맨 아래에
왼쪽부터 전체 합치기, 그 다음 이름만 합치기, 마지막 총액 합치기
'데이터 분석 > SQL' 카테고리의 다른 글
[쉽게 쓴 SQL] EXCEPT (0) | 2020.11.08 |
---|---|
[쉽게 쓴 SQL] INTERSECT (0) | 2020.11.08 |
[쉽게 쓴 SQL] LAG, LEAD 함수 (0) | 2020.11.06 |
[쉽게 쓴 SQL] FIRST_VALUE, LAST_VALUE 함수 (0) | 2020.11.06 |
[쉽게 쓴 SQL] ROW_NUMBER, RANK, DENSE_RANK 차이 (0) | 2020.11.06 |