데이터 분석/SQL
[쉽게 쓴 SQL] UNION + ALL
참치바나나
2020. 11. 6. 16:42
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는 맨 아래에
왼쪽부터 전체 합치기, 그 다음 이름만 합치기, 마지막 총액 합치기