他人が書いたSQLクエリを実行順・句単位で解説

複雑なクエリの処理内容を実行順序に沿ってわかりやすく解き明かす

プロンプト · 変数 2個

あなたはSQL初心者向けに教えるデータ分析の講師です。

私は{{データベース}}を使用しており、同僚から共有された以下のクエリがどのような処理を行っているのかを理解したいです。

クエリを句(clause)単位に分割し、各部分が何をしているのかを説明してください。その際、実行順序(FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY)を基準にして解説をお願いします。

出力形式:まず「このクエリは一言で言うと〜」という要約を1文、次に各句ごとの「コード片 → 処理内容 → 注意点」をまとめた表、最後に結果がどのような表形式になるかを示す3行のサンプルデータを出力してください。

専門用語を使う場合は、初出時に括弧書きでわかりやすい説明を添えてください。また、クエリにパフォーマンス上の問題やよくあるミスが見られる場合は、最後に1〜2点だけ指摘してください。

クエリ: """ {{クエリ}} """

コピーしたらここに貼り付け · ChatGPT・Claudeはプロンプト入りで開きます ChatGPTで開く ↗Claudeで開く ↗Geminiで開く ↗ ビルダーで編集 授業用カード画像を保存

なぜこう書くのか

役割
あなたはSQL初心者向けに教えるデータ分析の講師です。
文脈
私は{{データベース}}を使用しており、同僚から共有された以下のクエリがどのような処理を行っているのかを理解したいです。
課題
クエリを句(clause)単位に分割し、各部分が何をしているのかを説明してください。その際、実行順序(FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY)を基準にして解説をお願いします。
形式
出力形式:まず「このクエリは一言で言うと〜」という要約を1文、次に各句ごとの「コード片 → 処理内容 → 注意点」をまとめた表、最後に結果がどのような表形式になるかを示す3行のサンプルデータを出力してください。
制約
専門用語を使う場合は、初出時に括弧書きでわかりやすい説明を添えてください。また、クエリにパフォーマンス上の問題やよくあるミスが見られる場合は、最後に1〜2点だけ指摘してください。
入力資料
クエリ: """ {{クエリ}} """

コードの解説依頼はAIが最も得意とするタスクの一つですが、説明の「順序」と「深度」を指定しないと出力結果に大きなばらつきが生じます。このプロンプトはその2点を固定します。

役割を「初心者を教える講師」に設定することで、説明の深さが適切に定まります。同じクエリでも「シニアDBA」に依頼すると、実行計画やインデックスの話題が先に出てきてしまいます。文脈でデータベースの種類を伝えるのは、製品ごとに構文が微妙に異なるためです。LIMIT はMySQLやPostgreSQLにありますが、SQL Serverでは TOP を使い、日付関数も製品によって異なります。この一言があるだけで、見当違いな構文の指摘を防げます。

課題の段落における「実行順序基準」が最大のポイントです。SQLは記述順(SELECTが先頭)と実行順(FROMが先頭)が異なり、初心者が最もつまずきやすいのもこの点です。順序を明示することで、「なぜWHERE句で別名(エイリアス)が使えないのか」といった疑問も自然と解消されます。

形式の「一言で言うと〜」という要約文は全体のイメージを先に掴ませ、「3行のサンプルデータ」は結果のテーブルを具体的にイメージさせます。この2つがないと、説明は正しくても読み終えた後に「結局どんなデータが出るの?」という疑問が残ります。制約の「1〜2点だけ」は、AIが些細なコーディングスタイルの指摘で説明を長引かせるのを防ぎます。クエリを """ で囲むのは、クエリ内のコメント(-- ここは削除 など)がプロンプトの指示として誤認されないようにするためです。

用語が分からなければAha AIで: prompt, hallucination

悪い例との比較

よくある悪い例

このクエリを説明してください SELECT ... (クエリを貼り付け)

解説自体は出力されますが、SELECT句から書かれた順になぞるだけになりがちで、初心者が本当に知りたい「いつデータが絞り込まれ、いつ集計されるのか」が見落とされます。また、どのDBかわからないため、関係のない構文の注意点が含まれることもあります。

バリエーション

クエリを改善・リファクタリングしたいとき

クエリを改善・リファクタリングしたいとき

あなたは{{データベース}}のパフォーマンスチューニング経験が豊富なデータエンジニアです。以下のクエリの解説は不要ですので、同じ結果を返しつつ、より可読性が高い、または高速に動作するクエリへ修正してください。修正後のクエリ → 変更内容と理由の表(変更前・変更後・理由) → 結果が変わる可能性がある場合の注意点、の順で回答してください。確証のない最適化案は提案しないでください。

""" {{クエリ}} """

役割をエンジニアに変え、「解説は不要」と明示しました。「確証のない最適化案は提案しないでください」と釘を刺すことで、効果が不確かなヒントが出力されるのを防ぎます。

要約だけをサッと知りたいとき

要約だけをサッと知りたいとき

以下の{{データベース}}クエリが何を行っているのか、非エンジニアにもわかるように2文以内で要約してください。専門用語は使わないでください。

""" {{クエリ}} """

企画担当者やマネージャーにクエリの目的を手短に共有したいときに便利です。

モデル別の注意

テーブル構造が不明な場合、AIはカラム名の意味を推測します。CREATE TABLE文やカラム一覧を併せて貼り付けると、解説の正確性がさらに向上します。

関連プロンプト

最終更新 2026-09-02 · 誤りがありますか? 知らせる