Menu
Coddy logo textTech

UNION vs UNION ALL

Coddy SQL 여정의 심화 과정 섹션에 포함된 레슨 — 27개 중 16번째.

여러분은 기초(Fundamentals) 과정에서 UNION을 만났습니다. 이것은 두 결과 집합을 서로 위에 쌓습니다. 기본적으로 중복을 제거하며, 이로 인해 추가적인 정렬 비용이 발생합니다.

SELECT name FROM authors
UNION
SELECT name FROM editors

UNION ALL은 동일한 방식으로 데이터를 쌓지만 중복을 유지합니다. 두 데이터 집합에서 동일한 행이 생성되지 않는다는 것을 알고 있거나, 각 발생 횟수를 실제로 계산하고 싶을 때 더 빠르며 거의 항상 권장되는 방식입니다.

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

양쪽 모두 동일한 수의 열을 동일한 순서로, 호환되는 타입으로 반환해야 합니다.

challenge icon

챌린지

쉬움

사용 가능한 테이블 및 컬럼:

  • <strong>online_orders</strong>: <strong>order_no</strong>, <strong>amount</strong>
  • <strong>retail_orders</strong>: <strong>ticket_no</strong>, <strong>total</strong>

두 테이블은 서로 다른 컬럼명을 사용하여 각기 다른 채널의 주문을 추적합니다. 다음 컬럼들을 포함하여 모든 주문을 하나로 합친 리스트를 반환하세요:

  • channel: 'online' 또는 'retail'
  • order_id: online의 order_no, retail의 ticket_no
  • amount: 주문 합계 (amount 또는 total에서 가져옴)

모든 행을 유지하세요 (중복 제거 없음). amount를 기준으로 내림차순 정렬하세요.

치트 시트

UNION은 두 결과 집합을 쌓고 중복을 제거합니다 (더 느림). UNION ALL은 결과 집합을 쌓고 중복을 유지합니다 (더 빠름):

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

양쪽 모두 열의 개수가 같아야 하고, 순서가 동일해야 하며, 호환되는 타입이어야 합니다. 열 이름은 첫 번째 SELECT에서 가져옵니다.

직접 해보기

-- UNION ALL로 결합된, 동일한 3개의 컬럼으로 정렬된 두 개의 SELECT 문
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

심화 과정의 모든 레슨