次の方法で共有


vector_avg 集計関数

適用対象:はい Databricks Runtime 18.1 以降とマークされているチェック

集計内のベクトルの要素ごとの平均を計算します。 各要素がすべての入力ベクトルの対応する要素の算術平均であるベクトルを返します。

構文

vector_avg(vectors) [FILTER ( WHERE cond ) ]

引数

  • vector: ベクトルを表す ARRAY<FLOAT> 式の列。 すべてのベクトルは同じ次元を持つ必要があります。
  • cond: 集計に使用される行をフィルター処理する省略可能なブール式。

返品

入力ベクトルと同じ次元の ARRAY<FLOAT> 値。 結果の各要素は、すべての入力ベクトルの対応する要素の平均です。

NULL値と、NULL要素を含むNULLでないベクトルは、集計では無視されます。 グループ内のすべての値が無効な場合は、 NULL を返します。 すべての入力ベクトルが空の場合 [] 空の配列を返します。

メモ

  • ARRAY<FLOAT>のみがサポートされています。ARRAY<DOUBLE>ARRAY<DECIMAL>などの他の型ではエラーが発生します。
  • すべての入力ベクトルは同じ次元を持つ必要があります。それ以外の場合、関数は VECTOR_DIMENSION_MISMATCHを発生させます。
  • NULL要素を含む非NULL ベクターは、NULLとして扱われます。

エラー条件

例示

-- Element-wise average per category (with GROUP BY)
> SELECT category, vector_avg(embedding) AS centroid
    FROM vector_data
    GROUP BY category
    ORDER BY category;
  category: A, centroid: [3.0, 6.0, 9.0]
  category: B, centroid: [2.0, 4.0, 6.0]

-- Scalar aggregation (no GROUP BY)
> SELECT vector_avg(embedding) AS overall_centroid FROM vector_data;
  overall_centroid: [2.5, 5.0, 7.5]