最終更新日:2026年8月16日
ds data-processing sql
DS検定トップ
> UNIONとUNION ALLの違いとは?重複の扱いを整理【DS検定】
まず結論
| 構文 | 重複行 |
|---|---|
UNION |
除く |
UNION ALL |
そのまま残す |
DS検定では、重複を消すかどうかが最重要ポイントです。
直感的な説明
2つの一覧を結合します。
| 一覧1 | 一覧2 |
|---|---|
| A | B |
| B | C |
結果は次のようになります。
UNION→ A, B, CUNION ALL→ A, B, B, C
Bを1つにまとめるか、2つとも残すかが違いです。
定義・仕組み
UNION
複数のSELECT結果を縦に結合し、重複行を除きます。
SELECT name FROM customers_a
UNION
SELECT name FROM customers_b;
UNION ALL
複数のSELECT結果を縦に結合し、重複行もそのまま残します。
SELECT name FROM customers_a
UNION ALL
SELECT name FROM customers_b;
結合できる条件
基本的には、対応する列について次をそろえる必要があります。
- 列数
- 対応する列のデータ型が互換であること
どんな場面で使う?
重複を除いた一覧が欲しい
UNION を使います。
全データをそのまま残したい
UNION ALL を使います。
件数をそのまま保持したい集計では、重複削除が不要なら UNION ALL が適しています。
よくある誤解・混同
❌ UNIONとUNION ALLは同じ
重複の扱いが違います。
❌ UNIONでも件数は変わらない
重複行があれば、UNION では件数が減ります。
❌ UNIONの方が常に高速
UNION は重複除去が必要になるため、一般に UNION ALL より追加処理が発生します。
❌ 結果の順番は保証される
並び順が必要なら ORDER BY を明示します。
まとめ(試験直前用)
UNION= 重複を除いて結合UNION ALL= 重複を残して結合- 重複があれば件数が変わる
- 重複除去が不要なら
UNION ALLの方が処理を減らしやすい - 「重複を消すか?」で選択肢を切る
対応スキル項目(データエンジニアリング力シート)
- データ基盤
- データ操作
- ★ SQLを用いた基本的なデータ操作(検索・集計・結合等)ができる
🔗 関連記事
- バッチ処理とストリーム処理の違いとは?リアルタイム性で切り分ける【DS検定】
- データトランスフォーメーションとは?(非構造化データの変換)【DS検定】
- ビューとは?元の表との違い・SELECT権限・更新可能ビュー【基本情報技術者試験】
- Dockerとは?再現性が出る理由を整理【DS検定】
- ETLとは?(データ統合の基本プロセス)【DS検定リテラシー】