
自分の質問からつくるSQLクエリ
プロンプト
あなたはシニアのデータ担当として振る舞ってください。見た目は完璧なのに同じ注文を二重に数えていたレポートを、一晩かけて直した経験のある人です。だからこそ、クエリを渡すときは必ず「合っているかを確かめる方法」もいっしょに渡します。
前提:データベースは[どのデータベースとバージョン - 例:PostgreSQL 15]。答えを出したい質問は[普通の言葉で、同僚に話すように - 例:先の四半期に二回以上買った新規顧客は何人か]。手元にあるテーブルとカラムはこれだけで、ほかにはありません:
[各テーブルをカラムと型つきでここに貼り付け]
データ量は[おおよその規模 - 例:注文テーブルで二百万行ほど]。私の権限は[できること - 例:読み取りのみ]。データのタイムゾーンは[タイムゾーン - 例:UTC。結果は日本時間でほしい]。
タスク:その質問にちょうど答えるクエリを書き、何をしているかを普通の言葉で説明し、結果を確かめる方法を渡すこと。
ルール:
1. 私が挙げたテーブルとカラムだけを使うこと。答えるのに足りないものがあれば、カラムを作り出さずに、何が足りないかを言うこと。
2. 読み取りだけを書くこと。DELETE、UPDATE、DROP、ALTERは、コメントアウトした提案としても書かないこと。
3. クエリを普通の言葉で、ブロックごとに説明すること。各結合と各条件が何を落としているかを述べ、SQLを知らない人でも追えるようにすること。
4. 空の値を意図して扱い、どう決めたかを言うこと。値のない行は数に入るのか、外れるのか、ゼロになるのか。
5. 行が増えるところに注意すること。ある結合が結果を何倍にもしうるなら、どこかを指摘し、どう避けたかを示すこと。
6. 日付とタイムゾーンは指定した時間帯に変換して出し、期間は明示すること。最終日が含まれるかどうかを述べること。
7. 別の道筋を通る、もっと単純な確認用クエリもいっしょに渡すこと。一つ目の数字が正しいことを裏づけるもの。
8. 私の質問があいまいなら、いちばん一般的な読みを取って先へ進み、最後にどの読みを使ったか、もう一つの読みは何かを述べること。
9. 人が読む前提で整えること。一行に一句、テーブルの別名は短く、コメントは行が自明でないところだけ。
10. 伝えた規模でクエリを速くする方法を一つ挙げ、それが割に合わない場合も述べること。
回答の形式:まず完成したクエリをコードブロックで、途中に文章を挟まずに。次に普通の言葉での説明を、ブロックごとに。次に確認用クエリを別のコードブロックで、その結果が何と一致すべきかを一文添えて。次に前提としたことの一覧。最後に性能についての注記。
使い方
クエリを書くのは簡単なほうです。高くつくのは、一週間後に「結合で行が二重になっていて数字が膨らんでいた」と分かることで、そのときレポートはもう出回っています。このプロンプトはクエリと、普通の言葉での説明と、一つ目を確かめるための二つ目のクエリを渡します。ChatGPT、Claude、Geminiで動きます。 1. カラム名を型つきで貼ってください。これがないとAIはもっともらしいカラムを作り出し、クエリはデータベースで落ちます。 2. 質問は普通の言葉で、同僚に話すように。半分SQLに直した質問は、半分SQLで返ってきます。 3. データのタイムゾーンを書いてください。一日ずれたレポートの、静かな原因がこれです。 4. 数字を誰かに送る前に確認用クエリを回してください。二つが合わなければ、誤りはそこにあります。 5. 前提の一覧を読んでください。値のない行をどう扱ったかが書いてあり、それが合計を変えます。 ヒント:うまくいったクエリを、元の質問を上に書いて保存を。それがあなたのデータベースの辞書になります。
対応ツール
ChatGPT
Claude
Gemini
このプロンプトを評価
📖 Prompteiroブログから
すべての記事を見る →
ChatGPTはなぜ間違える?答えを確かめる方法コース · 2026年8月24日

自分の写真からAIで画像を作る方法コース · 2026年8月19日

AIで勉強する:試験・資格・語学の勉強法テキスト · 2026年8月18日

無料のAI:お金をかけずにどこまでできるかコース · 2026年8月12日

ChatGPTとGemini、用途別にどちらを使うかコース · 2026年8月5日

日本語で使えるChatGPTのおすすめプロンプト12選テキスト · 2026年8月2日

古い写真をAIで修復する:無料で使える完全ガイド画像 · 2026年8月2日

ChatGPTで効くプロンプトの書き方コース · 2026年8月2日

仕事とキャリアのAIプロンプト:詰まりを解く12選テキスト · 2026年8月1日
Prompt




