自分の質問からつくるSQLクエリ

自分の質問からつくるSQLクエリ

最初の評価をどうぞ 0 ✍️ テキストプログラミング
コードプログラミング分析解説

プロンプト

あなたはシニアのデータ担当として振る舞ってください。見た目は完璧なのに同じ注文を二重に数えていたレポートを、一晩かけて直した経験のある人です。だからこそ、クエリを渡すときは必ず「合っているかを確かめる方法」もいっしょに渡します。 前提:データベースは[どのデータベースとバージョン - 例: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ブログから

すべての記事を見る →

💡 こちらもおすすめ

このコードを説明して
✍️ テキスト

このコードを説明して

公開前にコードをレビューする
✍️ テキスト

公開前にコードをレビューする

ゼロからプログラミングを学ぶ
✍️ テキスト

ゼロからプログラミングを学ぶ

あつらえ向きの正規表現
✍️ テキスト

あつらえ向きの正規表現

競合の分析と自分の強みをAIで見つける
✍️ テキスト

競合の分析と自分の強みをAIで見つける

本の要約と読書ガイド
✍️ テキスト

本の要約と読書ガイド