VECTOR_NORM (Transact-SQL) (プレビュー)
適用対象: Azure SQL Database
Note
このデータ型はプレビュー段階であり、変更される可能性があります。 Online Services のサービス レベル アグリーメント (SLA) ドキュメントで、プレビューの使用条件をお読みください。
関数 VECTOR_NORM
は、入力としてベクトルを受け取り、指定された norm型のベクトル(長さまたは大きさの尺度)のノルムを返します
たとえば、ユークリッドノルム (最も一般的なノルム型) を計算する場合は、次の値を使用できます。
SELECT VECTOR_NORM ( vector_column, 'norm2' )
FROM ...
構文
VECTOR_NORM ( vector_column, norm_type )
引数
vector_column
ベクターに評価される式。 この列は、新しい vector データ型である必要があります
norm_type
指定されたベクトルのノルムの計算に使用するノルム型の名前を持つ文字列。 次の標準型がサポートされています。
norm1
- 1 ノルム。ベクトル 成分の絶対値の合計です。norm2
- ベクトル成分の平方和の平方根であるユークリッドノルムとも呼ばれる2ノルム。norminf
- 無限ノルム。これはベクトル成分の絶対値の最大値です。
戻り値
この関数は、指定したノルム型を使用してベクトルのノルムを表す float 値を返します。
norm_typeが有効なノルム型でない場合、およびvector_columnがベクトル型でない場合は、エラーが返されます。
例
例 1
次の例では、JSON 配列を持つ文字列から 3 次元のベクターを作成します。
DECLARE @v VECTOR(3) = '[1, 2, 3]';
SELECT
vector_norm(@v, 'norm2') AS norm2,
vector_norm(@v, 'norm1') AS norm1,
vector_norm(@v, 'norminf') AS norminf;
期待される戻り値は次のようになります。
norm2 |
norm1 |
norminf |
---|---|---|
3.7416573867739413 | 6.0 | 3.0 |
例 2
次の例では、テーブル内の各ベクトルのノルムを計算します。
CREATE TABLE dbo.vectors
(
ID INT PRIMARY KEY,
v VECTOR(3) NOT NULL
);
INSERT INTO dbo.vectors (ID, v) VALUES
(1, '[0.1, -2, 42]'),
(2, '[2, 0.1, -42]');
SELECT
ID,
VECTOR_NORM(v, 'norm2') AS norm
FROM
dbo.vectors;