- Kategorien:
VECTOR_L2_DISTANCE¶
Berechnet den L2-Abstand zwischen zwei Vektoren.
L2-Abstand, auch bekannt als Euklidischer Abstand, ist ein Maß für den Abstand zwischen zwei Vektoren in einem Vektorraum. Der Abstand wird berechnet, indem die Quadratwurzel aus der Summe der quadrierten Differenzen der Vektorelemente gezogen wird. Der Abstand kann ein Wert von null oder höher sein. Wenn der Abstand null ist, sind die Vektoren identisch. Je größer der Abstand, desto weiter sind die Vektoren voneinander entfernt.
Syntax¶
VECTOR_L2_DISTANCE( <vector>, <vector> )
Argumente¶
vector
Der VECTOR-Wert, von dem aus der Abstand berechnet wird.
vector
Der VECTOR-Wert, zu dem Abstand berechnet werden soll.
Rückgabewerte¶
Gibt den Abstand zwischen den beiden Eingabevektoren als FLOAT-Wert zurück.
Nutzungshinweise¶
Aufgrund von Berechnungsoptimierungen in den Vektorvergleichsfunktionen können Gleitkommafehler etwas größer als üblich sein (z. B. etwa 1e-4).
Beispiele¶
In diesem Beispiel wird die Funktion VECTOR_L2_DISTANCE verwendet, um zu ermitteln, welche Vektoren zwischen den Spalten a
und b
der Tabelle am nächsten beieinander liegen:
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT [1.1,2.2,3]::VECTOR(FLOAT,3), [1,1,1]::VECTOR(FLOAT,3);
INSERT INTO vectors SELECT [1,2.2,3]::VECTOR(FLOAT,3), [4,6,8]::VECTOR(FLOAT,3);
-- Compute the pairwise inner product between columns a and b
SELECT VECTOR_L2_DISTANCE(a, b) FROM vectors;
+------+
| 2.3 |
|------|
| 6.95 |
+------+