ds data-processing sql
まず結論
UNION=重複を除いて結合
UNION ALL=重複もそのまま結合
DS検定では「重複が消えるかどうか」を判断できるかがポイント
直感的な説明
2つのリストをくっつけるイメージです。
A B
B C
これを結合すると…
UNION → A, B, C(重複削除)
UNION ALL → A, B, B, C(そのまま)
👉 「Bが1つになるか、そのまま2つか」の違い
定義・仕組み
UNION
複数のSELECT結果を結合
重複は自動的に削除される
UNION ALL
複数のSELECT結果を結合
重複も含めてすべて残す
基本形:
SELECT 列 FROM テーブル1 UNION SELECT 列 FROM テーブル2;
SELECT 列 FROM テーブル1 UNION ALL SELECT 列 FROM テーブル2;
ポイント:
列の数・型は揃える必要がある
どんな場面で使う?
UNION
ユニークな一覧を作りたいとき
重複が不要な場合
UNION ALL
全データをそのまま結合したいとき
件数を正しく保ちたいとき
よくある誤解・混同
❌ UNIONとUNION ALLは同じ
→ ⭕ 重複の扱いが違う
👉 DS検定ではここが典型的なひっかけ
❌ 件数は同じになる
→ ⭕ UNIONは重複があると件数が減る
❌ UNIONは速い
→ ⭕ UNIONは重複削除処理があるため遅くなりやすい
👉 UNION ALLの方が基本的に高速
❌ 行の順番は保証される
→ ⭕ ORDER BYを使わないと順序は保証されない
まとめ(試験直前用)
UNION=重複削除して結合
UNION ALL=そのまま結合
件数が変わるかが重要ポイント
UNION ALLの方が高速
「重複を消すか?」で判断する
対応スキル項目(データエンジニアリング力シート)
データ基盤
データ操作
★ SQLを用いた基本的なデータ操作(検索・集計・結合等)ができる
🔗 関連記事
- バッチ処理とストリーム処理の違いとは?【DS検定リテラシー】
- データトランスフォーメーションとは?(非構造化データの変換)【DS検定】
- Dockerとは?再現性が出る理由を整理【DS検定】
- ETLとは?(データ統合の基本プロセス)【DS検定リテラシー】
- フィルターとは?BIツールの基本操作をわかりやすく解説【DS検定】