次の方法で共有


クイック スタート: スマート クエリ ビルダーを使用する (プレビュー)

このクイック スタートでは、クエリ構築アシスタントを使用して、生の SQL または任意の ORM を使用して、効率的で正確で安全なクエリを作成する方法について説明します。 コード優先の開発者とデータ優先の開発者の両方向けに設計されており、接続されたデータベース スキーマに合わせて運用対応のロジックをより迅速に生成できます。

始めましょう

データベースに接続されていて、MSSQL 拡張機能でアクティブなエディター ウィンドウが開かれていることを確認します。 この接続により、 @mssql チャット参加者はデータベース環境のコンテキストを理解できるため、正確でコンテキストに対応した提案が可能になります。 データベース接続がないと、チャット参加者は意味のある応答を提供するスキーマまたはデータ コンテキストを持ちません。

次の例では、 AdventureWorksLT2022 サンプル データベースを使用します。このデータベースは、 Microsoft SQL Server サンプルとコミュニティ プロジェクト のホーム ページからダウンロードできます。

最適な結果を得るには、独自の環境に合わせてテーブル名とスキーマ名を調整します。

チャットに @mssql プレフィックスが含まれていることを確認します。 たとえば、「 @mssql 」と入力し、その後に質問またはプロンプトを入力します。 これにより、チャット参加者は、SQL 関連のサポートを求めていることを理解できます。

クエリの作成

GitHub Copilot は、Visual Studio Code 内で直接インテリジェントなクエリ構築をサポートします。 基本的な SELECT から複雑な結合、フィルター、集計まで、ベスト プラクティスに従って現在のスキーマを反映する SQL または ORM クエリが生成されるため、アプリケーション ロジックに集中できます。

チャット参加者から質問できる一般的なユース ケースと例を次に示します。

時間ベースの分析

これらのプロンプトは、最近の販売活動、期間別のトップ パフォーマー、過去の平均との比較など、時間の経過に伴う傾向を分析するのに役立ちます。 GitHub Copilot では、現在のシステム日付に基づく想定を回避して、データの最新の日付に対して値を計算するクエリを作成できます。

  • 入れ子になったクエリを生成して、データベース内の最新の注文日 (現在の日付ではなく) を基準にして、過去 6 か月間の平均注文金額を合計が上回る SalesLT.SalesOrderHeader から注文をフェッチします。
  • SalesLT.SalesOrderHeader テーブルの売上合計で上位 3 人の顧客を年別にグループ化して検索するクエリを作成します。
  • 過去 30 日間に注文を行った SalesLT.Customer の各顧客の合計収益を、現在の日付ではなく、 SalesLT.SalesOrderHeader の最新の注文日に対して検索します。
  • Sequelize クエリを作成して、Customers (SalesLT.Customers) とその注文 (SalesLT.SalesOrderDetail) と合計収益を取得します。このクエリは、データベース内の昨年の降順の収益で並べ替えられます (現在の日付を基準としていません)。

複雑なリレーションシップ

これらのプロンプトを使用して、複数の関連テーブルにまたがるクエリを生成します。 注文の詳細を使用して顧客データを結合する場合でも、収益集計を構築する場合でも、GitHub Copilot はスキーマ コンテキストを使用して複雑なリレーションシップをナビゲートし、正確な結合と条件を生成するのに役立ちます。

  • SalesLT.SalesOrderHeader テーブルの実際のスキーマを使用して、入れ子になった SQL クエリを生成し、注文の合計が過去 6 か月間の平均注文合計を上回る注文を取得します。 6 か月の期間は、(現在の日付ではなく) テーブル内の最新の注文日を基準にして計算する必要があります。

  • 現在のデータベースを使用して、 SQLAlchemy クエリを作成して、顧客の注文と合計収益を降順の収益で並べ替えて取得します。

  • Prismaを使用して、SalesLT.CustomerSalesLT.SalesOrderHeaderSalesLT.SalesOrderDetailを結合し、顧客ごとの総収益を計算するクエリを生成します。

  • Entity Frameworkで、LINQ スキーマを使用して、過去 1 年間の売上別の上位 10 人の顧客を返すSalesLT クエリを記述します。

  • 過去 6 か月間に販売されていない製品を検索する TypeORM クエリを作成します。 6 か月の期間は、(現在の日付ではなく) テーブル内の最新の注文日を基準にして計算する必要があります。

  • 過去 1 年間に購入したすべての顧客を合計支出別に並べ替えた、取得する Django ORM クエリを作成します。 "昨年" 期間は、(現在の日付ではなく) テーブル内の最新の注文日を基準にして計算する必要があります。

ビジネスの分析情報

これらのプロンプトは、データから実用的な分析情報を表示するように設計されています。 チャーンリスクの顧客の特定から売れ残りの製品の検出まで、GitHub Copilot は、接続されたデータベースに合わせて調整された戦略的な決定とレポートをサポートするロジックの構築に役立ちます。

  • 現在のデータベースを使用して、データベース内の最新の注文日を参照ポイントとして使用して、過去 6 か月間に最初の注文を行った顧客を示すリストを生成します。

  • 現在のデータベースを使用して、過去 12 か月間に販売されていない製品を識別するリストを生成し、データベース内の最新の注文日を参照として使用します。

  • 過去に5回以上の注文をしたが、直近90日間は1件も注文していない顧客を、データベース内の最新の注文日を参照に特定します。

  • 注文返品またはキャンセルに基づいて、最も高い返品率を持つ上位 5 つの製品を、最新の注文日に対して計算して一覧表示します。

  • 最新の注文日をアンカーとして使用して、OrderDateSalesLT.SalesOrderHeaderに基づいて、過去 12 か月間の月次収益の傾向を生成します。

  • SQLAlchemy と Pandas を使用して、最新の注文日に基づいて、過去 3 四半期の注文頻度が低下している顧客を識別するレポートを作成します。

フィードバック: スマート クエリ ビルダー

MSSQL 拡張機能の GitHub Copilot を改良および改善するために、次の GitHub 問題テンプレートを使用してフィードバックを送信します。 GitHub Copilot フィードバック

フィードバックを送信する場合は、次の内容を検討してください。

  • テスト済みのシナリオ – スキーマの作成、クエリの生成、セキュリティ、ローカライズなど、どの領域に重点を置いたかをお知らせください。

  • うまくいったこと - スムーズで役に立ち、期待を超えた経験について説明します。

  • 問題またはバグ – 問題、不整合、または混乱を招く動作を含めます。 スクリーンショットや画面の記録は特に役立ちます。

  • 改善の提案 – 使いやすさの向上、カバレッジの拡大、GitHub Copilot の応答の強化に関するアイデアを共有します。