Tous les produits
Search
Centre de documentation

MaxCompute:L2_DISTANCE

Dernière mise à jour :Aug 10, 2026

La fonction L2_DISTANCE calcule le carré de la distance euclidienne (distance L2 au carré) entre deux vecteurs.

Remarque

La distance L2, également appelée distance euclidienne, mesure l'écart entre deux vecteurs dans un espace vectoriel. Elle correspond à la somme des carrés des différences entre les éléments correspondants des deux vecteurs (c'est-à-dire le carré de la distance euclidienne). Une distance nulle indique que les deux vecteurs sont identiques. Plus la distance est élevée, plus les vecteurs sont éloignés.

Syntaxe

FLOAT L2_DISTANCE( <vector>, <vector> )

Paramètres

vector : Obligatoire. Expression du type de données VECTOR.

Valeur renvoyée

Renvoie une valeur FLOAT représentant le carré de la distance euclidienne entre les deux vecteurs.

Les fonctions vectorielles sont optimisées pour les performances, ce qui peut entraîner une légère perte de précision en virgule flottante. Le résultat de cette fonction présente une erreur maximale de 1e-4.

Exemples

-- Enable the VECTOR data type.
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;

-- Prepare data.
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));

-- Calculate the squared Euclidean distance between vectors a and b.
SELECT L2_DISTANCE(a, b) FROM vectors;

-- Result
+------------+
| _c0        | 
+------------+
| 5.449999809265137 | 
| 48.439998626708984 | 
+------------+