query-writing について
query-writingは、データベースツールを使ったSQLの作成、実行、エラー対応を案内するスキルです。単一または複数テーブルのデータから回答するエージェント向けで、読み取り専用の適切なクエリを重視します。
主な機能
- 01単純・複雑なクエリのワークフロー
- 02クエリ作成前のスキーマ確認
- 03JOINと集計の計画
- 04クエリ実行とエラー対応
- 05読み取り専用クエリの品質指針
活用シーン
- 01単一テーブルのデータに基づく質問への回答
- 02関連テーブルを結合した分析
- 03SQLエラーや予期しない結果の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ langchain-ai/ deepagents --skill query-writingインストール後、Claude Code で/query-writingを入力して読み込まれたか確認します。
詳細
クエリ作成スキル
シンプルなクエリのワークフロー
単一のテーブルに関する簡単な質問の場合:
- テーブルを特定する - データがあるテーブルはどれですか?
- スキーマを取得する -
sql_db_schemaを使って列を確認します - クエリを作成する - 関連する列を SELECT し、WHERE/LIMIT/ORDER BY を指定します
- 実行する -
sql_db_queryで実行します - 回答を整形する - 結果をわかりやすく提示します
複雑なクエリのワークフロー
複数のテーブルが必要な質問の場合:
1. アプローチを計画する
write_todos を使ってタスクを分解します:
- 必要なテーブルをすべて特定する
- リレーションシップ(外部キー)を確認する
- JOIN の構成を計画する
- 集計方法を決める
2. スキーマを調べる
各テーブルの sql_db_schema を使い、結合列と必要なフィールドを確認します。
3. クエリを構成する
- SELECT - 列と集計
- FROM/JOIN - FK = PK を使ってテーブルを結合
- WHERE - 集計前のフィルター
- GROUP BY - 集計対象でないすべての列
- ORDER BY - 意味のある順序で並べ替え
- LIMIT - デフォルトは 5 行
4. 検証して実行する
すべての JOIN に条件があり、GROUP BY が正しいことを確認してから、クエリを実行します。
例:国別の収益
SELECT
c.Country,
ROUND(SUM(i.Total), 2) as TotalRevenue
FROM Invoice i
INNER JOIN Customer c ON i.CustomerId = c.CustomerId
GROUP BY c.Country
ORDER BY TotalRevenue DESC
LIMIT 5;
エラーからの復旧
クエリが失敗した場合や、予期しない結果が返された場合:
- 結果が空 — スキーマに照らして列名と WHERE 条件を確認します。大文字と小文字の区別や NULL 値も確認します
- 構文エラー — JOIN、GROUP BY の漏れ、エイリアス参照を再確認します
- タイムアウト — より厳しい WHERE フィルターまたは LIMIT を追加して結果セットを減らし、その後調整します
品質ガイドライン
- 関連する列のみをクエリします(SELECT * は使いません)
- 必ず LIMIT を適用します(デフォルトは 5)
- わかりやすさのためにテーブルエイリアスを使います
- 複雑なクエリでは、計画に
write_todosを使います - DML 文(INSERT、UPDATE、DELETE、DROP)は使用しません
コメント
Markdown 対応