SQL 関数を説明する

SQL コード スニペットについて説明します。

直接モデルにクエリを実行して、返された結果をテストできます。その場合、Cloud コンソールでさまざまなパラメータ値を使用することも、Vertex AI API を直接呼び出すこともできます。

自由形式のプロンプト

以下のコードの CROSS APPLY の機能を説明してください。

SELECT customer.CustomerId, customer.CustomerName, ord.*
FROM customers customer
CROSS APPLY
(
    SELECT SUM(order.quantity) as TotalQuantity
    FROM orders order
    WHERE order.CustomerId = customer.CustomerId
) ord;

レスポンス

この SQL コードの CROSS APPLY 関数は、サブクエリの結果を customers テーブルの各行に適用する相関サブクエリとして機能します。内訳は次のとおりです。

  1. 外部クエリ: メインクエリは、customer というエイリアスを持つ customers テーブルから CustomerIdCustomerName を選択します。

  2. CROSS APPLY: このキーワードは、関連するサブクエリを導入します。これは、customers テーブルの各行に対してサブクエリを実行するようにデータベースに指示します。

  3. サブクエリ: サブクエリは、次のように各顧客の TotalQuantity を計算します。

  4. orders テーブルから quantity の合計を選択し、order というエイリアスを設定します。

  5. customers テーブルの現在の行の CustomerId に基づいて orders テーブルをフィルタリングしています。

  6. 結果: CROSS APPLY は、顧客ごとに CustomerIdCustomerName、計算された TotalQuantity を含む 1 行を返します。

CROSS APPLY を使用すると、サブクエリの結果に基づいて顧客ごとに新しい列(TotalQuantity)を動的に生成し、customers テーブルと集計された注文データを効果的に結合できます。

例:

次のデータがあるとします。

お客様:

CustomerId CustomerName
1 John Doe
2 Jane Smith

注文:

OrderId CustomerId Quantity
1 1 5
2 1 3
3 2 2

クエリは次の結果を返します。

CustomerId CustomerName TotalQuantity
1 John Doe 8
2 Jane Smith 2

注:

  • CROSS APPLYOUTER APPLY に似ていますが、OUTER APPLY はサブクエリが結果を返さない場合でも行を返します。
  • この例では、GROUP BY 句で JOIN を使用しても同じ結果が得られます。ただし、特定のシナリオでは、特に複雑なサブクエリを扱う場合、CROSS APPLY のほうが柔軟で効率的です。
モデル: gemini-1.5-flash-001
温度: 1
最大出力トークン: 8192
トップ K 40
トップ P 0.95