- カテゴリ:
VECTOR_AVG¶
集計で ベクトル の要素の平均を計算します。各要素がすべての入力ベクトルにおける対応する要素の平均であるベクトルを返します。入力の型に関係なく、出力は常に VECTOR ( FLOAT , N)です。
- こちらもご参照ください。
構文¶
VECTOR_AVG( <vector_column> )
引数¶
vector_columnVECTOR 値を含む列。列内のすべてのベクトルは、同じ要素の型とディメンションでなければなりません。
戻り値¶
VECTOR ( FLOAT , N)値を返します。Nは入力ベクトルのディメンションです。結果ベクトルの各要素は、入力ベクトルすべての対応する要素の平均です。
使用上の注意¶
集約では NULL 値は無視されます。
グループのすべての値が NULL の場合、関数は NULL を返します。
列のすべての入力ベクトルは、同じディメンションと要素の型を持っている必要があります。
入力の型に関係なく、出力は常に VECTOR ( FLOAT , N)です。Snowflakeでの浮動小数点数については、 浮動小数点データ型 をご参照ください。
ベクトル関数は最適化されていますが、浮動小数点の精度を低下させる可能性があります。この関数の結果には、最大
1e-4のエラー幅があります。
例¶
この例は、ベクトルの要素全体の平均を計算する方法を示しています。
CREATE OR REPLACE TABLE vector_data (
id INT,
category VARCHAR,
embedding VECTOR(FLOAT, 3)
);
INSERT INTO vector_data
SELECT 1, 'A', [2.0, 4.0, 6.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 2, 'A', [4.0, 8.0, 12.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 3, 'B', [1.0, 2.0, 3.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 4, 'B', [3.0, 6.0, 9.0]::VECTOR(FLOAT, 3);
-- Compute average for each category
SELECT category, VECTOR_AVG(embedding) AS avg_vector
FROM vector_data
GROUP BY category
ORDER BY category;
+----------+------------------+
| CATEGORY | AVG_VECTOR |
+----------+------------------+
| A | [3.0, 6.0, 9.0] |
| B | [2.0, 4.0, 6.0] |
+----------+------------------+
この例は、スカラー集約( GROUP BY なし)を示しています。
SELECT VECTOR_AVG(embedding) AS overall_avg
FROM vector_data;
+------------------+
| OVERALL_AVG |
+------------------+
| [2.5, 5.0, 7.5] |
+------------------+
この例は、整数ベクトルがどのように浮動小数点出力に変換されるかを示しています。
CREATE OR REPLACE TABLE int_vector_data (
id INT,
vec VECTOR(INT, 2)
);
INSERT INTO int_vector_data
SELECT 1, [1, 3]::VECTOR(INT, 2)
UNION ALL SELECT 2, [2, 4]::VECTOR(INT, 2);
SELECT VECTOR_AVG(vec) AS avg_result
FROM int_vector_data;
+-------------+
| AVG_RESULT |
+-------------+
| [1.5, 3.5] |
+-------------+