Workflows

Ask AI で SQL を生成する

Dory の SQL 生成は、独立したプロンプト入力欄ではなく SQL Console の中に組み込まれています。Ask AI は、現在の接続、データベース、スキーマ、エディター本文、選択範囲、推定されたテーブル、直近の結果形状を利用できます。生成された SQL はまずエディターまたは Copilot パネルに戻るため、実行前に確認できます。

入口を選ぶ

入口適した場面ワークフローへの入り方
エディターの /SQL を書きながら、クエリ、フィルター、集計、CTE を追加する。Dory が依頼内容をコメントとして残し、生成 SQL をカーソル位置に挿入します。
ツールバーの Ask AI空のタブから始める、または最初のクエリ案を作る。生成 SQL がアクティブな SQL タブに入り、確認、整形、実行を続けられます。
右側の Ask AI パネル現在の SQL の説明、結果からの続き、エラー修正、フォローアップ質問。パネルはエディターと結果のコンテキストを持ち、SQL の変更をエディターへ適用できます。
Copilot Actions既存 SQL の修正、最適化、書き換え、集計化。生成 SQL のプレビューを確認してから、現在の SQL を置き換えるか新しいタブで開きます。

どのテーブルを使うべきかわからない場合は、不明なテーブルの探索 または Explorer のテーブル構造ビューから始めてください。

Inline Ask AI

SQL エディターの空行で / を入力するか、ツールバーの Ask AI をクリックします。現在行にすでに SQL がある場合、/ は通常の文字として入力され、作業中の文を妨げません。

Inline Ask は次の情報を使います。

  • 現在の SQL タブのエディター全文。
  • 現在のデータベース、スキーマ、SQL 方言。
  • プロンプト内、またはエディター内に出てくるテーブル。
  • 最大 12 個の候補テーブルの実スキーマコンテキスト。

送信後、Dory は SQL だけを生成します。クエリは実行しません。挿入されるブロックには、どの依頼から生成されたかがわかるコメントが含まれます。

過去 30 日間の新規ユーザー数を日別に数え、date と users だけを日付昇順で返す

生成結果は次のような形です。

-- 過去 30 日間の新規ユーザー数を日別に数え、date と users だけを日付昇順で返す
select
  date(created_at) as date,
  count(*) as users
from users
where created_at >= current_date - interval '30 days'
group by 1
order by 1 asc;

実際の構文は、PostgreSQL、MySQL、SQL Server、Oracle、SQLite、ClickHouse、Doris、DuckDB、MariaDB など、アクティブな接続タイプに合わせて調整されます。

Ask AI パネル

Cmd/Ctrl + I で SQL Console の Ask AI パネルを開きます。単発の挿入ではなく会話しながら進めたい場合に使います。このパネルは Copilot Context を受け取ります。

  • 現在のエディター本文と選択範囲。
  • 推定されたデータベース、スキーマ、テーブル。
  • 直近結果の列、型、行数、制限、結果プロファイル。
  • 現在の SQL 方言と利用可能なスキーマコンテキスト。

たとえば次のように質問できます。

現在の SQL の各ステップを説明し、重複カウントが起きそうな箇所を指摘してください。

現在の結果から続けることもできます。

同じフィルターを保ったまま、週次集計に書き換えてください。

データ取得が必要な質問では、Ask AI パネルはまず読み取り専用 SQL を生成し、Dory の制御された sqlRunner で実行できます。結果は捏造しません。SQL が拒否された、失敗した、またはサンプルしか返らない場合は、エラーと結果メタデータを使って修正するか制限を説明します。

Copilot Actions

既存 SQL がある場合や実行に失敗した場合は、右側パネルの Actions を使います。

Action使う場面
Fix SQL errors実行に失敗し、エラー、方言、元の SQL を使って修正したい。
Optimize performanceクエリは動くがスキャン量が多い、より強いフィルターが必要、または同じ出力を低コストで保ちたい。
Rewrite SQLより読みやすい SQL、別の書き方、方言調整が必要。
Convert to aggregation明細行を、分析やグラフに使いやすい集計出力へ変えたい。

Actions はまずレビュー可能な SQL プレビューを生成します。現在のエディター内容を置き換えるか、新しいタブで開くかを選べます。

よい依頼を書く

よい依頼は短くても構いませんが、結果形状と範囲を具体的にします。

events テーブルを使って、過去 14 日間の DAU を数えてください。
フィールド: user_id, event_time, event_name。
event_name = 'app_open' だけを数えます。
date と dau を返し、date 昇順にしてください。
SELECT * は使わず、必要な時間範囲だけをスキャンしてください。

既存 SQL を編集中なら、もっと短くできます。

現在の SQL を基に、国別グループを追加し、上位 20 件だけ残してください。

エラーの場合:

この SQL は PostgreSQL で column "created_date" does not exist と失敗します。
現在のスキーマを使ってフィールド名を修正し、同じ指標定義を保ってください。

実行前に確認する

生成された SQL を正しいものとして扱う前に確認してください。

  1. テーブル名と列名は実在するか。
  2. 時間範囲は正しいか。
  3. 集計はビジネス定義と一致しているか。
  4. 重複排除が必要か。
  5. 適切なフィルターや制限があるか。
  6. 構文は現在のデータベースに合っているか。
  7. SELECT * ではなく必要な列だけを選択しているか。

グラフ向け SQL を生成する

このクエリを棒グラフ向けに書き換えてください。category と value だけを返し、value の降順で上位 10 件に制限してください。

FAQ

AI 生成 SQL を本番環境で直接実行できますか?

盲目的に実行しないでください。Inline Ask と Actions は SQL を生成しますが、自動実行はしません。本番データベース、大きなテーブル、時間フィルター不足、読み取り専用でない操作は特に注意して確認してください。

AI が存在しない列を参照するのはなぜですか?

Explorer でテーブルを確認し、依頼内でテーブル名と列名を明示するか、現在のテーブル構造から再生成するよう Dory に依頼してください。Inline Ask は、プロンプトまたはエディター SQL から候補テーブルを特定できる場合にスキーマコンテキストを絞り込みます。

AI にもっと速い SQL を生成させるには?

パーティションフィールド、時間範囲、必要な列、性能目標を説明してください。既存 SQL の場合は、Copilot Actions の Optimize performance を使います。

次のステップ

このガイドは役に立ちましたか?