- Kategorien:
VECTOR_L1_DISTANCE¶
Berechnet den L1-Abstand zwischen zwei Vektoren.
Der L1-Abstand, auch bekannt als Taxicab- oder Manhattan-Abstand, ist ein Maß für den Abstand zwischen zwei Punkten in einem Vektorraum. Die Abstand wird berechnet, indem die Summe der absoluten Werte der Differenzen der Vektorelemente gebildet wird. Das Ergebnis ist ein Wert von Null oder höher. Wenn der Abstand null ist, sind die Vektoren identisch. Je größer der Abstand, desto weiter sind die Vektoren voneinander entfernt.
Syntax¶
VECTOR_L1_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 L1-Abstand zwischen den beiden Eingabevektoren als Wert FLOAT zurück.
Nutzungshinweise¶
Aufgrund von Berechnungsoptimierungen in den Vektorvergleichsfunktionen können Gleitkommafehler etwas größer als üblich sein (z. B. etwa 1e-4).
Beispiele¶
Das folgende Beispiel verwendet die Funktion VECTOR_L1_DISTANCE, um zu ermitteln, welche Vektoren in der Tabelle zwischen den Spalten a
und b
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);
SELECT VECTOR_L1_DISTANCE(a, b) FROM vectors;
+--------------+
| 3.300000191 |
|--------------|
| 11.800000191 |
+--------------+