◯ 無料:1日5回 • リセットまで 17h 9m
開発 & 技術

SQL クエリジェネレータ

必要なことを平易な英語で記述すると、PostgreSQL、MySQL、SQLite、SQL Server、BigQuery、Snowflake 用の正確で読みやすい SQL クエリが得られます — スキーマを考慮し、各句の説明やインデックス・パフォーマンスに関するメモが付随します。

もっと知る

SQL Query Generator は、質問 — 「2025 年の国別月間売上、注文が 3 件以上の顧客のみ」 — を、使用しているデータベース向けのクエリに変換します:PostgreSQL、MySQL(MariaDB)、SQLite、SQL Server、BigQuery、Snowflake。テーブルとカラムを貼り付けると、クエリはそれらの名前を正確に使用します;スキーマを空にすると、前提条件を示します。スタイル(読みやすい CTE、コンパクト、ウィンドウ関数を用いた分析的)と説明の詳細度を選択でき、すべての回答は結果の形状と高速化するインデックスで終わります。破壊的なステートメントは、要求しない限り生成しません。

0 / 4000
0 / 10000

✓ 無料で利用可能 — 登録不要、クレジットカード不要。

すべての方向け

国別月間収益(アクティブ顧客のみ)

HAVING 形式の顧客フィルタを使用した財務レポート

入力と出力のプレビューを見る

入力

クエリは何を返すべきですか?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
テーブルとカラム(任意)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
SQL 方言
PostgreSQL
クエリのスタイル
読みやすい(CTE、1 行ごとに句)
説明
簡潔

出力(抜粋)

```sql
WITH active_customers AS (
  SELECT o.customer_id
  FROM orders AS o
  WHERE o.created_at >= DATE '2025-01-01'
    AND o.created_at <  DATE '2026-01-01'
  GROUP BY o.customer_id
  HAVING COUNT(*) > 3
)
SELECT
  DATE_TRUNC('month', o.created_at)::date AS month,
  c.country,
  SUM(o.total_cents) / 100.0            AS revenue
FROM orders AS o
JOIN active_customers AS a ON a.customer_id = o.customer_id
JOIN customers        AS c ON c.id = o.customer_id
WHERE o.created_at >= DATE '2025-01-01'
  AND o.created_at <  DATE '2026-01-01'
GROUP BY 1, 2
ORDER BY month, revenue DESC;
```

**スキーマはそのまま使用します。**

CTE は 2025 年に 3 件以上の注文がある顧客を見つけます。メインクエリはそれらの顧客の注文のみを保持し、各注文を月単位に切り捨て、月と国ごとの収益を合計します。日付範囲は半開区間なので、12 月 31 日は一度だけカウントされます…
開発者

顧客ごとの最新注文

相関サブクエリを置き換えるウィンドウ関数クエリ

入力と出力のプレビューを見る

入力

クエリは何を返すべきですか?
For every customer, their most recent order with its total and date.
テーブルとカラム(任意)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
SQL 方言
MySQL / MariaDB
クエリのスタイル
分析的(必要に応じてウィンドウ関数)
説明
詳細(句ごと)

出力(抜粋)

```sql
WITH ranked AS (
  SELECT
    o.customer_id,
    o.id          AS order_id,
    o.total_cents,
    o.created_at,
    ROW_NUMBER() OVER (PARTITION BY o.customer_id ORDER BY o.created_at DESC, o.id DESC) AS rn
  FROM orders AS o
)
SELECT c.id AS customer_id, c.email, r.order_id, r.total_cents / 100.0 AS total, r.created_at
FROM customers AS c
JOIN ranked AS r ON r.customer_id = c.id AND r.rn = 1
ORDER BY r.created_at DESC;
```

**スキーマはそのまま使用します。**

| Clause | 何をするか |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | 各顧客の注文を最新順に番号付けします。id のタイブレークにより結果が決定的になります |
| `JOIN ranked … AND r.rn = 1` | 各顧客につき正確に 1 行だけ保持します |…

SQL クエリジェネレータ の結果がここに表示されます

コメント付きの整理されたコードブロックと、変更点の簡単な説明が得られます。

使い方 SQL クエリジェネレータ

  1. 同僚に尋ねるように質問を書きます:どの行、どのフィルタ、どのグルーピング、どの順序。
  2. テーブルとカラムがある場合は貼り付けてください — 1 行に 1 テーブル、カラムは括弧で示します。クエリは実際の名前を使用し、編集は不要です。
  3. 使用する方言を選択してください;日付関数、LIMIT と TOP、クオートは PostgreSQL、MySQL、SQLite、SQL Server、BigQuery、Snowflake でそれぞれ異なります。
  4. 学習中や他者のリクエストをレビューする場合は「Detailed」説明を選び、求めているものが明確な場合は「Query only」を選択してください。

使用例

1

データチームを待たずにアナリストからのビジネス質問に答える

2

レポート要求を、データウェアハウスの実際のスキーマを尊重したクエリに変換する

3

遅いクエリを、必要なインデックスを含む可読性の高い CTE 版に書き換える

4

移行時に MySQL のクエリを PostgreSQL または BigQuery に変換する

5

実行前に UPDATE または DELETE が対象とする内容をプレビューする SELECT を作成する

最高の結果を得るためのヒント

  • スキーマにカラム型(created_at timestamp、total_cents integer)を含めると、クエリは日付と金額を正しく処理します。
  • 「only」や「at least」を明示的に述べます — 「3 件以上の注文がある顧客」は WHERE ではなく HAVING 句になります。
  • ダッシュボードの場合は、分析スタイルを指定してください:ウィンドウ関数はレポートを遅くする自己結合を回避します。
  • パフォーマンスセクションを読んでください;フルテーブルスキャンを検索に変えるインデックスが記載されています。

よくある質問

サポートされているデータベースはどれですか?

PostgreSQL、MySQL と MariaDB、SQLite、SQL Server(T-SQL)、BigQuery、Snowflake がサポートされています。クエリはそれぞれの方言固有の関数と構文を使用します — 日付の切り捨て、LIMIT または TOP、クオート、文字列集約はすべて異なり、出力は選択した方言向けに生成されます。

スキーマを貼り付ける必要がありますか?

いいえ、必須ではありませんが、あると便利です。スキーマがあると、クエリは正確なテーブル名とカラム名を使用し、編集は不要です。スキーマがない場合、ツールは最小限の妥当なスキーマを仮定し、説明の上部にすべての前提を列挙するので、修正できます。

DELETE や UPDATE を生成しますか?

明示的に変更を要求した場合のみです。その場合でも、ステートメントはトランザクションでラップされ、影響行をプレビューする SELECT が最初に配置されるため、コミット前に確認できます。

日付と金額はどのように扱われますか?

日付は方言固有の切り捨て・比較関数を使用し、範囲は半開区間で記述されるため、日が二重にカウントされません。金額は整数のセントとして保存され、最終的な除算まで整数のままで、結果の形状は各カラムの単位を示します。

クエリは高速であることが保証されていますか?

正確性を最優先、可読性を次にして作成されており、各回答の最後には高速化するインデックスとインデックス使用を妨げる構造が示されます。スケジュール前に実際のデータ量で実行してください — 統計はデータベースだけが知っています。

🔒
あなたのプライバシーは保護されています

入力内容と結果は、サービスの運営、不正利用の防止、ログイン中の方への履歴表示のため、最長90日間保管します。処理はプライバシーポリシーに記載のAIプロバイダーが行います。第三者に販売することはありません。

関連ツール

このエージェントを試す

ブランドビルダーブランド名を生成し、スローガンを作成し、ブランドストーリーを書き、ブランドガイドラインを定義します。このエージェントを試す →

関連ワークフロー

ロングフォーム動画を出荷するアイデア → スクリプト → サムネイル → メタデータを1セッションでアップロードワークフローを実行 →

もっと読む