データベース用語集一覧に戻る
ホーム > データベーススペシャリスト > 用語集 > 共通表式(WITH句 / CTE)と再帰クエリ(WITH RECURSIVE)
SQL設計・ウィンドウ関数・関係代数 重要度:★★出題: AM2・PM1・PM2

共通表式(WITH句 / CTE)と再帰クエリ(WITH RECURSIVE)

きょうつうひょうしきとさいきくえり / Common Table Expression (CTE) & Recursive Query
1つのSQL文のスコープ内で一時的な名前付き結果セット(導出表)を定義するWITH句と、自己参照によって階層・グラフ構造を反復探索するWITH RECURSIVE句。

3行速習ポイント

  • 複雑な多段階の集計や中間結果を `WITH 一時表名 AS (SELECT ...)` として切り出すことで、SQLの可読性と再利用性を高める
  • 同じ一時表を主クエリ内で複数回参照できるため、重複する副問合せの記述を排除できる
  • `WITH RECURSIVE` では非再帰項(初期集合)と再帰項を `UNION ALL` で結び、部品表(BOM)の展開や組織階層の探索を1つのSQLで実行できる

図解

図WITH RECURSIVE(再帰共通表式)の実行ステップ
11. 非再帰項(初期集合)の評価
Anchor Member
親コード IS NULL 等の条件でルート階層(第1階層)を取得
22. UNION ALL と再帰項の反復
Recursive Step
直前の結果セットと元表を結合し、子階層を1段ずつ追加取得
33. 終了判定と主クエリ出力
Termination
新たな子行が0件になった時点で反復を終了し全階層を返却

概要と本質

午後I・午後IIの長文SQL問題で非常によく使われる構文です。例えば「入庫集計と出庫集計をそれぞれWITH句で一時表として定義し、主クエリで結合して在庫推移を算出する」「組織階層を最上位から最下位まで再帰的にたどって部門別集計を行う」といった場面で登場します。

重要ポイント・コア概念

  • 再帰クエリの構成:①非再帰項(ルート行を取得するSELECT文)+ `UNION ALL` + ②再帰項(直前の結果セットと元テーブルを結合して次の階層を取得するSELECT文)
  • 無限ループ防止:データに循環(サイクル)が含まれる可能性がある場合は、探索深さの上限条件やCYCLE句を指定する
  • ビュー(CREATE VIEW)とは異なりデータベースカタログに永続化されず、当該SQL文の実行中のみ有効

午後I・午後II記述試験での攻略ポイント

WITH句を使ったSQL穴埋め問題では、WITH句で定義された一時表の「列名リスト」と、主SELECT文での「結合キー(ON句)」および「集計粒度(GROUP BY句)」の対応関係を丁寧に追跡すれば確実に得点できます。

午後記述で使える加点キーワード(クリックでコピー)

この用語が出題された過去問を解く(1分演習)

即時アウトプットで定着
データベーススペシャリスト 過去問演習で実践力を鍛える

理解を深める推薦副読本

この用語の背景理論・実務動向を深く理解し、午後II小論文の説得力を劇的に高める必読書

PR
ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ
戦略・名著セレクションソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチマーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン
ISBN: 4873119820
🏗️ EA・SoR/SoE・モダナイゼーションの名著

ソフトウェアアーキテクチャの基礎 エンジニアリングに基づく体系的アプローチ

マーク・リチャーズ, ニール・フォード 著 / オライリー・ジャパン

アーキテクチャ特性(非機能要件)の定義と優先度付けモジュラリティ、マイクロサービス、イベント駆動設計のトレードオフレガシーシステムの段階的刷新(モダナイゼーション)設計
なぜこの用語の理解に役立つのか

『共通表式(WITH句 / CTE)と再帰クエリ(WITH RECURSIVE)』の背景にある理論と業界動向を体系的に理解し、実務や小論文に直結する戦略的視点を深掘りできます。

午後II小論文(ST論文)への応用・加点ポイント

エンタープライズアーキテクチャ(EA)やSoR/SoE連携、クラウド移行のアーキテクチャ方針を決定した根拠(トレードオフ判断)を論述する際の強力な武器になります。

※価格・在庫状況は各ECモールの最新情報をご確認ください(もしもアフィリエイト経由)