すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:L2_DISTANCE

最終更新日:Jul 14, 2026

L2_DISTANCE 関数は、2 つのベクター間の L2 距離 (二乗ユークリッド距離) を計算します。

説明

L2 距離はユークリッド距離とも呼ばれ、ベクトル空間において 2 つのベクターがどれだけ離れているかを測定します。この関数は、2 つのベクターの対応する要素間の二乗差の和 (二乗ユークリッド距離) を返します。距離が 0 の場合、2 つのベクターは同一であることを示します。距離が大きいほど、ベクターがより離れていることを示します。

構文

FLOAT L2_DISTANCE( <vector>, <vector> )

引数

vector:必須。VECTOR データ型の式。

戻り値

2 つのベクター間の二乗ユークリッド距離を表す FLOAT を返します。

ベクター関数はパフォーマンス向上のために最適化されているため、浮動小数点精度がわずかに低下する場合があります。この関数の結果の最大誤差は 1e-4 です。

-- VECTOR データ型を有効にします。
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;

-- データを準備します。
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT CAST(ARRAY(1.1,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(1.0,1.0,1.0) AS VECTOR(FLOAT,3));
INSERT INTO vectors SELECT CAST(ARRAY(1.0,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(4.0,6.0,8.0) AS VECTOR(FLOAT,3));

-- ベクター a と b の間の二乗ユークリッド距離を計算します。
SELECT L2_DISTANCE(a, b) FROM vectors;

-- 結果
+------------+
| _c0        | 
+------------+
| 5.449999809265137 | 
| 48.439998626708984 | 
+------------+