VECTOR_L1_DISTANCE
VECTOR_L1_DISTANCE
VECTOR_L1_DISTANCE() 함수는 두 벡터 사이의 L1 거리를 계산해요.
L1 거리(택시 또는 맨해튼 거리라고도 함)는 벡터 공간에서 두 점 사이의 거리를 측정하는 방식이에요. 이 거리는 벡터 요소의 차이에 대한 절댓값의 합을 취해 계산돼요. 결과는 0 이상의 값이에요. 거리가 0이면 두 벡터는 동일해요. 거리가 클수록 벡터가 더 멀리 떨어져 있다는 뜻이에요.
본문
문법
VECTOR_L1_DISTANCE( <vector>, <vector> )
인자
vector — 거리를 계산할 두 벡터 값이에요.
반환
두 입력 벡터 사이의 L1 거리를 FLOAT 값으로 반환해요.
사용 메모
- 벡터 함수는 부동소수점 정밀도를 낮출 수 있는 방식으로 최적화되어 있어요. 이 함수의 결과는 최대
1e-4의 오차 범위를 가져요.
예제
이 예제는 VECTOR_L1_DISTANCE 함수를 사용해 테이블의 a와 b 컬럼 사이에서 서로 가장 가까운 벡터를 판단해요.
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 |
+--------------+