PostgreSQL UNION 연산자를 사용하여 여러 쿼리의 결과 집합을 단일 결과 집합으로 결합 하는 방법
UNION은 두 쿼리의 결과 집합을 결합 하는 연산자입니다.
SELECT select_list_1
FROM table_expresssion_1
UNION
SELECT select_list_2
FROM table_expression_2
- 두 쿼리의 선택 목록에 있는 열의 수와 순서는 동일해야합니다.
- 데이터 유형은 호환 가능해야 합니다.
DROP TABLE IF EXISTS top_rated_films;
CREATE TABLE top_rated_films(
title VARCHAR NOT NULL,
release_year SMALLINT
);
DROP TABLE IF EXISTS most_popular_films;
CREATE TABLE most_popular_films(
title VARCHAR NOT NULL,
release_year SMALLINT
);
INSERT INTO
top_rated_films(title,release_year)
VALUES
('The Shawshank Redemption',1994),
('The Godfather',1972),
('12 Angry Men',1957);
INSERT INTO
most_popular_films(title,release_year)
VALUES
('An American Pickle',2020),
('The Godfather',1972),
('Greyhound',2020);
SELECT * FROM top_rated_films;
SELECT * FROM most_popular_films;
1) 간단한 PostgreSQL UNION 예제
SELECT * FROM top_rated_films
UNION
SELECT * FROM most_popular_films;
- UNION연산자가 하나의 중복 행을 제거 하기 때문에 결과 집합에는 결과 집합에 5개의 행이 포함됩니다 .
2) PostgreSQL UNION ALL 예제
SELECT * FROM top_rated_films
UNION ALL
SELECT * FROM most_popular_films;
- 중복 행은 결과 집합에 유지됩니다.
3) ORDER BY 절이 있는 PostgreSQL UNION ALL 예제
SELECT * FROM top_rated_films
UNION ALL
SELECT * FROM most_popular_films
ORDER BY title;
- ORDER BY각 쿼리의 끝에 절 을 배치하면 결합된 결과 집합이 예상대로 정렬되지 않습니다.
- UNION연산자가 각 쿼리의 정렬된 결과 집합을 결합 할 때 최종 결과 집합의 행 순서를 보장하지 않기 때문입니다.
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - EXCEPT (0) | 2021.09.03 |
---|---|
[PostgreSQL] BASIC - INTERSECT (0) | 2021.09.03 |
[PostgreSQL] BASIC - HAVING (0) | 2021.09.02 |
[PostgreSQL] BASIC - GROUP BY (0) | 2021.09.02 |
[PostgreSQL] BASIC - INNER JOIN (0) | 2021.09.02 |
최근댓글