튜플 함수
튜플 함수 (Tuple functions)
튜플을 생성하고, 요소에 접근하며, 산술·거리 연산을 수행하는 함수들이에요. 아래 문서는 system.functions 시스템 테이블에서 생성된 내용입니다.
출처: 문서
본문
다음 내용은 system.functions 시스템 테이블에서 생성된 것입니다.
dotProduct
도입 버전: v21.11.0
두 벡터(같은 크기의 튜플 또는 배열)의 내적(dot product)(스칼라 곱)을 계산합니다. 대응하는 요소들의 곱의 합을 반환합니다.
구문
dotProduct(vector1, vector2)
별칭: scalarProduct
인자
vector1— 첫 번째 벡터.Array(T)또는Tuple(T)vector2— 두 번째 벡터. 첫 번째 벡터와 같은 크기여야 합니다.Array(T)또는Tuple(T)
반환 값
두 벡터의 내적을 반환합니다. 두 BFloat16 배열은 누적되어 Float32로 반환됩니다. (U)Int* 또는 Float* 또는 Decimal
예제 — 기본 사용
Query
SELECT dotProduct((1, 2), (3, 4))
Response
11
flattenTuple
도입 버전: v22.6.0
이름 있는 중첩 튜플을 평탄화합니다. 반환된 튜플의 요소는 입력 튜플의 경로(path)입니다.
구문
flattenTuple(input)
인자
input— 평탄화할 이름 있는 중첩 튜플.Tuple(n1 T1[, n2 T2, ... ])
반환 값
요소가 원래 입력의 경로인 출력 튜플을 반환합니다. Tuple(T)
예제 — 사용 예시
Query
CREATE TABLE tab(t Tuple(a UInt32, b Tuple(c String, d UInt32))) ENGINE = MergeTree ORDER BY tuple();
INSERT INTO tab VALUES ((3, ('c', 4)));
SELECT flattenTuple(t) FROM tab;
Response
┌─flattenTuple(t)─┐
│ (3,'c',4) │
└─────────────────┘
tuple
도입 버전: v1.1.0
입력 인자를 묶어 튜플을 반환합니다. 타입이 T1, T2, …인 컬럼 C1, C2, …에 대해, 이름이 고유하고 따옴표 없는 식별자로 취급될 수 있으면 이 컬럼들을 담은 이름 있는 Tuple(C1 T1, C2 T2, …) 타입 튜플을, 그렇지 않으면 Tuple(T1, T2, …)을 반환합니다. 함수 실행 비용은 없습니다.
튜플은 보통 IN 연산자의 인자 중간 값으로, 또는 람다 함수의 형식 파라미터 목록을 만드는 데 사용됩니다. 튜플은 테이블에 쓸 수 없습니다.
이 함수는 연산자 (x, y, ...)를 구현합니다.
구문
tuple([t1[, t2[ ...]]])
인자
- 없음.
반환 값
예제 — 일반적인 사용
Query
SELECT tuple(1, 2)
Response
(1,2)
tupleConcat
도입 버전: v23.8.0
인자로 전달된 튜플들을 결합합니다.
구문
tupleConcat(tuple1[, tuple2, [...]]])
인자
tupleN— Tuple 타입의 임의 개수 인자.Tuple(T)
반환 값
입력 튜플들의 모든 요소를 담은 튜플을 반환합니다. Tuple(T)
예제 — 사용 예시
Query
SELECT tupleConcat((1, 2), ('a',), (true, false))
Response
(1,2,'a',true,false)
tupleDivide
도입 버전: v21.11.0
같은 크기의 둘 이상의 튜플을 왼쪽에서 오른쪽으로 요소별 나눗셈을 계산합니다.
0으로 나누면 inf를 반환합니다.
구문
tupleDivide(t1, t2[, tN, ...])
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소별 몫을 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tupleDivide((1, 2), (2, 3))
Response
(0.5,0.6666666666666666)
예제 — 세 튜플
Query
SELECT tupleDivide((100.0, 60.0), (5.0, 3.0), (2.0, 4.0))
Response
(10,5)
tupleDivideByNumber
도입 버전: v21.11.0
모든 요소를 숫자로 나눈 튜플을 반환합니다.
0으로 나누면 inf가 반환됩니다.
구문
tupleDivideByNumber(tuple, number)
인자
tuple— 나눌 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)number— 나누는 수.(U)Int*또는Float*또는Decimal
반환 값
나뉜 요소들을 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleDivideByNumber((1, 2), 0.5)
Response
(2,4)
tupleElement
도입 버전: v1.1.0
인덱스 또는 이름으로 튜플에서 요소를 추출합니다. 인덱스 접근은 1부터 시작하는 숫자 인덱스를 기대합니다. 이름 접근은 요소 이름을 문자열로 제공할 수 있습니다(이름 있는 튜플에만 동작). 음수 인덱스가 지원됩니다. 이 경우 끝에서부터 번호를 매긴 해당 요소가 선택됩니다. 예를 들어 tuple.-1은 튜플의 마지막 요소입니다. 선택적 세 번째 인자는 접근한 요소가 존재하지 않을 때 예외를 던지는 대신 반환할 기본 값을 지정합니다. 모든 인자는 상수여야 합니다.
이 함수는 런타임 비용이 0이며 x.index와 x.name 연산자를 구현합니다.
구문
tupleElement(tuple, index|name[, default_value])
인자
tuple— 튜플 또는 튜플 배열.Tuple(T)또는Array(Tuple(T))index— 1부터 시작하는 컬럼 인덱스.const UInt8/16/32/64name— 요소 이름.const Stringdefault_value— 인덱스가 범위를 벗어나거나 요소가 존재하지 않을 때 반환되는 기본 값.Any
반환 값
지정된 인덱스 또는 이름의 요소를 반환합니다. Any
예제 — 인덱스 접근
Query
SELECT tupleElement((1, 'hello'), 2)
Response
hello
예제 — 음수 인덱싱
Query
SELECT tupleElement((1, 'hello'), -1)
Response
hello
예제 — 테이블과 함께 사용하는 이름 있는 튜플
Query
CREATE TABLE example (values Tuple(name String, age UInt32)) ENGINE = Memory;
INSERT INTO example VALUES (('Alice', 30));
SELECT tupleElement(values, 'name') FROM example;
Response
Alice
예제 — 기본 값 사용
Query
SELECT tupleElement((1, 2), 5, 'not_found')
Response
not_found
예제 — 연산자 구문
Query
SELECT (1, 'hello').2
Response
hello
tupleHammingDistance
도입 버전: v21.1.0
같은 크기의 두 튜플 사이의 해밍 거리를 반환합니다.
결과 타입은 입력 튜플의 요소 수에 따라 산술 함수와 같은 방식으로 결정됩니다.
SELECT
toTypeName(tupleHammingDistance(tuple(0), tuple(0))) AS t1,
toTypeName(tupleHammingDistance((0, 0), (0, 0))) AS t2,
toTypeName(tupleHammingDistance((0, 0, 0), (0, 0, 0))) AS t3,
toTypeName(tupleHammingDistance((0, 0, 0, 0), (0, 0, 0, 0))) AS t4,
toTypeName(tupleHammingDistance((0, 0, 0, 0, 0), (0, 0, 0, 0, 0))) AS t5
┌─t1────┬─t2─────┬─t3─────┬─t4─────┬─t5─────┐
│ UInt8 │ UInt16 │ UInt32 │ UInt64 │ UInt64 │
└───────┴────────┴────────┴────────┴────────┘
구문
tupleHammingDistance(t1, t2)
인자
반환 값
해밍 거리를 반환합니다. UInt8/16/32/64
예제 — 사용 예시
Query
SELECT tupleHammingDistance((1, 2, 3), (3, 2, 1))
Response
2
예제 — MinHash로 준중복 문자열 감지
Query
SELECT tupleHammingDistance(wordShingleMinHash(string), wordShingleMinHashCaseInsensitive(string)) FROM (SELECT 'ClickHouse is a column-oriented database management system for online analytical processing of queries.' AS string)
Response
2
tupleIntDiv
도입 버전: v23.8.0
같은 크기의 둘 이상의 튜플을 왼쪽에서 오른쪽으로 요소별 정수 나눗셈을 수행하고 몫의 튜플을 반환합니다. 어떤 튜플에 정수가 아닌 요소가 있으면 각 정수가 아닌 분자·제수에 대해 가장 가까운 정수로 반올림해 계산합니다. 0으로 나누면 예외가 발생합니다.
구문
tupleIntDiv(t1, t2[, tN, ...])
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
정수 몫의 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tupleIntDiv((15, 10, 5), (5, 5, 5))
Response
(3,2,1)
예제 — 소수 포함
Query
SELECT tupleIntDiv((15, 10, 5), (5.5, 5.5, 5.5))
Response
(2,1,0)
예제 — 세 튜플
Query
SELECT tupleIntDiv((120, 60), (4, 3), (2, 4))
Response
(15,5)
tupleIntDivByNumber
도입 버전: v23.8.0
분자들의 튜플을 주어진 분모로 정수 나눗셈하고 몫의 튜플을 반환합니다. 입력 파라미터 중 하나에 정수가 아닌 요소가 있으면 각 정수가 아닌 분자·제수에 대해 가장 가까운 정수로 반올림해 계산합니다. 0으로 나누면 오류가 발생합니다.
구문
tupleIntDivByNumber(tuple_num, div)
인자
tuple_num— 분자 값들의 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)div— 제수 값.(U)Int*또는Float*또는Decimal
반환 값
몫의 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleIntDivByNumber((15, 10, 5), 5)
Response
(3,2,1)
예제 — 소수 포함
Query
SELECT tupleIntDivByNumber((15.2, 10.7, 5.5), 5.8)
Response
(2,1,0)
tupleIntDivOrZero
도입 버전: v23.8.0
tupleIntDiv처럼 같은 크기의 둘 이상의 튜플을 왼쪽에서 오른쪽으로 요소별 정수 나눗셈을 수행합니다. 0으로 나눌 때 예외를 던지는 대신 해당 요소에 0을 반환합니다. 어떤 튜플에 정수가 아닌 요소가 있으면 각 정수가 아닌 분자·제수에 대해 가장 가까운 정수로 반올림해 계산합니다.
구문
tupleIntDivOrZero(t1, t2[, tN, ...])
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
정수 몫의 튜플을 반환하며, 제수가 0인 요소는 0을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 0 제수 포함
Query
SELECT tupleIntDivOrZero((5, 10, 15), (0, 0, 0))
Response
(0,0,0)
예제 — 세 튜플
Query
SELECT tupleIntDivOrZero((120, 60), (4, 3), (2, 4))
Response
(15,5)
tupleIntDivOrZeroByNumber
도입 버전: v23.8.0
tupleIntDivByNumber처럼 분자들의 튜플을 주어진 분모로 정수 나눗셈하고 몫의 튜플을 반환합니다. 0 제수에 대해 오류를 던지지 않고 몫을 0으로 반환합니다. 튜플이나 div에 정수가 아닌 요소가 있으면 각 정수가 아닌 분자·제수에 대해 가장 가까운 정수로 반올림해 계산합니다.
구문
tupleIntDivOrZeroByNumber(tuple_num, div)
인자
tuple_num— 분자 값들의 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)div— 제수 값.(U)Int*또는Float*또는Decimal
반환 값
제수가 0인 몫은 0으로 하는 몫의 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 5)
Response
(3,2,1)
예제 — 0 제수 포함
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 0)
Response
(0,0,0)
tupleMinus
도입 버전: v21.11.0
같은 크기의 둘 이상의 튜플을 왼쪽에서 오른쪽으로 요소별 차를 계산합니다.
구문
tupleMinus(t1, t2[, tN, ...])
별칭: vectorDifference
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소별 차를 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tupleMinus((1, 2), (2, 3))
Response
(-1,-1)
예제 — 세 튜플
Query
SELECT tupleMinus((10, 10), (3, 4), (2, 1))
Response
(5,5)
tupleModulo
도입 버전: v23.8.0
같은 크기의 둘 이상의 튜플을 왼쪽에서 오른쪽으로 나눈 나머지의 튜플을 반환합니다.
구문
tupleModulo(t1, t2[, tN, ...])
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소별 나머지의 튜플을 반환합니다. 0으로 나누면 예외가 발생합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tupleModulo((15, 10, 5), (5, 3, 2))
Response
(0,1,1)
예제 — 세 튜플
Query
SELECT tupleModulo((10, 20), (7, 9), (3, 5))
Response
(0,2)
tupleModuloByNumber
도입 버전: v23.8.0
튜플과 주어진 제수의 나눗셈 연산의 나머지(모듈로) 튜플을 반환합니다.
구문
tupleModuloByNumber(tuple_num, div)
인자
tuple_num— 분자 요소들의 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)div— 제수 값.(U)Int*또는Float*또는Decimal
반환 값
나눗셈의 나머지 튜플을 반환합니다. 0으로 나누면 오류가 발생합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleModuloByNumber((15, 10, 5), 2)
Response
(1,0,1)
tupleMultiply
도입 버전: v21.11.0
같은 크기의 둘 이상의 튜플의 요소별 곱을 계산합니다.
구문
tupleMultiply(t1, t2[, tN, ...])
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소별 곱을 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tupleMultiply((1, 2), (2, 3))
Response
(2,6)
tupleMultiplyByNumber
도입 버전: v21.11.0
모든 요소를 숫자로 곱한 튜플을 반환합니다.
구문
tupleMultiplyByNumber(tuple, number)
인자
tuple— 곱할 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)number— 곱할 수.(U)Int*또는Float*또는Decimal
반환 값
곱해진 요소들을 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleMultiplyByNumber((1, 2), 2)
Response
(2,4)
tupleNames
매개변수에 전달된 튜플의 이름을 반환합니다.
구문
tupleNames(tuple)
인자
tuple— 이름을 얻을 튜플.Tuple(T)
반환 값
문자열 배열 형태의 이름 목록을 반환합니다. Array(String)
예제 — 사용 예시
Query
SELECT tupleNames((1, 'Hello'))
Response
[]
Query
SELECT tupleNames((1 AS x, 'Hello' AS y))
Response
['x','y']
tupleNegate
도입 버전: v21.11.0
모든 요소의 부호를 뒤집은 튜플을 반환합니다.
구문
tupleNegate(tuple)
인자
tuple— 부호를 뒤집을 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소들의 부호를 뒤집은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tupleNegate((1, 2))
Response
(-1,-2)
tuplePlus
도입 버전: v21.11.0
같은 크기의 둘 이상의 튜플 요소별 합을 계산합니다.
구문
tuplePlus(t1, t2[, tN, ...])
별칭: vectorSum
인자
t1— 첫 번째 입력 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)t2, ..., tN— 하나 이상의 추가 입력 튜플. 모든 튜플은 같은 크기여야 합니다.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)
반환 값
요소별 합을 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 두 튜플
Query
SELECT tuplePlus((1, 2), (2, 3))
Response
(3,5)
예제 — 세 튜플
Query
SELECT tuplePlus((1, 2, 3), (4, 5, 6), (7, 8, 9))
Response
(12,15,18)
tuplePositiveModuloByNumber
도입 버전: v23.8.0
튜플의 각 요소와 주어진 제수 사이의 양의 모듈로를 계산합니다. 즉, 나머지가 항상 0 이상인 나눗셈입니다.
구문
tuplePositiveModuloByNumber(tuple_num, div)
인자
tuple_num— 분자 요소들의 튜플.Tuple((U)Int*)또는Tuple(Float*)또는Tuple(Decimal)div— 제수 값.(U)Int*또는Float*또는Decimal
반환 값
각 요소의 양의 나머지 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal)
예제 — 기본 사용
Query
SELECT tuplePositiveModuloByNumber((-1, -2, 3), 5)
Response
(4,3,3)
tupleToNameValuePairs
도입 버전: v21.11.0
이름 있는 튜플을 (name, value) 쌍의 배열로 변환합니다. 익명 튜플의 경우 익명 요소들의 이름을 나타냅니다. 결과 배열의 요소 수는 원본 튜플과 같습니다. 결과의 name 요소는 유효한 ClickHouse 식별자에 대해서만 계산됩니다.
구문
tupleToNameValuePairs(tuple)
인자
tuple— 이름 있는 튜플.Tuple(n1 T1, n2 T2, ... )
반환 값
(name, value) 쌍의 배열을 반환합니다. Array(Tuple(String, T1), Tuple(String, T2), ...)
예제 — 사용 예시
Query
SELECT tupleToNameValuePairs((1 AS x, 'Hello' AS y))
Response
[('x',1),('y','Hello')]
untuple
도입 버전: v1.1.0
튜플의 요소를 추가 컬럼으로 변환합니다. 아쿠아리움 함수와 함께 사용할 수 있습니다.
구문
untuple(tuple)
SELECT untuple(tuple) FROM table
인자
tuple— 튜플.Tuple(T)
반환 값
아무것도 없습니다. 이 함수는 SELECT의 지정된 열 집합에 튜플 요소를 확장합니다. 즉, 결과 열은 tuple의 요소들입니다. Tuple(T)
예제 — 사용 예시
Query
CREATE TABLE tab (t1 Tuple(Int32, String), t2 Tuple(Int32, String)) ENGINE = Log;
INSERT INTO tab VALUES ((1, 'Hello'), (2, 'World'));
SELECT untuple(t1) FROM tab;
Response
┌─_tuple_1─┬─_tuple_2─┐
│ 1 │ Hello │
│ 2 │ World │
└──────────┴──────────┘
거리 함수 (Distance functions)
L1Distance
도입 버전: v21.1.0
두 벡터(같은 요소 수의 튜플 또는 배열) 사이의 거리를 계산합니다. 결과 타입은 입력의 요소 수에 따라 산술 함수와 같은 방식으로 결정됩니다.
구문
L1Distance(tuple1, tuple2)
별칭: L1Norm, normL1
인자
tuple1— 첫 번째 튜플.Tuple(Float*)또는Array(Float*)tuple2— 두 번째 튜플.Tuple(Float*)또는Array(Float*)
반환 값
L1 거리를 반환합니다. Float64
예제 — 사용 예시
Query
SELECT L1Distance((1, 2), (3, 4))
Response
4
L2Distance
도입 버전: v21.1.0
두 개의 벡터(같은 요소 수의 튜플 또는 배열) 사이의 유클리드 거리를 계산합니다.
구문
L2Distance(tuple1, tuple2)
별칭: vectorDifference, distance
인자
tuple1— 첫 번째 튜플.Tuple(Float*)또는Array(Float*)tuple2— 두 번째 튜플.Tuple(Float*)또는Array(Float*)
반환 값
유클리드 거리를 반환합니다. Float64
예제 — 사용 예시
Query
SELECT L2Distance((1, 2), (3, 4))
Response
2.8284271247461903
L2SquaredDistance
도입 버전: v21.1.0
두 개의 벡터(같은 요소 수의 튜플 또는 배열) 사이의 유클리드 거리의 제곱을 계산합니다.
구문
L2SquaredDistance(tuple1, tuple2)
인자
tuple1— 첫 번째 튜플.Tuple(Float*)또는Array(Float*)tuple2— 두 번째 튜플.Tuple(Float*)또는Array(Float*)
반환 값
유클리드 거리의 제곱을 반환합니다. Float64
예제 — 사용 예시
Query
SELECT L2SquaredDistance((1, 2), (3, 4))
Response
8
LpDistance
도입 버전: v21.1.0
두 개의 벡터(같은 요소 수의 튜플 또는 배열) 사이의 Lp 거리(민코프스키 거리)를 계산합니다.
구문
LpDistance(tuple1, tuple2, p)
인자
tuple1— 첫 번째 튜플.Tuple(Float*)또는Array(Float*)tuple2— 두 번째 튜플.Tuple(Float*)또는Array(Float*)p— 거리 계산에 사용할 Lp 공간.UInt
반환 값
Lp 거리를 반환합니다. Float64
예제 — 사용 예시
Query
SELECT LpDistance((1, 2), (3, 4), 3)
Response
2.080083823051904
L1Norm
두 벡터 요소들의 절대값 합으로 정의되는 L1 규범(맨해튼 거리)을 계산합니다.
구문
L1Norm(tuple)
인자
tuple— 튜플.Tuple(Float*)또는Array(Float*)
반환 값
L1 규범 값을 반환합니다. Float64
예제 — 사용 예시
Query
SELECT L1Norm((1, 2, 3))
Response
6
L2Norm
두 벡터 요소들의 제곱 합의 제곱근으로 정의되는 L2 규범(유클리드 규범)을 계산합니다.
구문
L2Norm(tuple)
인자
tuple— 튜플.Tuple(Float*)또는Array(Float*)
반환 값
L2 규범 값을 반환합니다. Float64
예제 — 사용 예시
Query
SELECT L2Norm((1, 2, 3))
Response
3.7416573867739413
LpNorm
민코프스키 규범으로 정의되는 Lp 규범을 계산합니다.
구문
LpNorm(tuple, p)
인자
tuple— 튜플.Tuple(Float*)또는Array(Float*)p— 거리 계산에 사용할 Lp 공간.UInt
반환 값
Lp 규범 값을 반환합니다. Float64
예제 — 사용 예시
Query
SELECT LpNorm((1, 2, 3), 3)
Response
3.3019272488946263
LinfNorm
L-무한대(Linf) 규범을 계산합니다.
구문
LinfNorm(tuple)
인자
tuple— 튜플.Tuple(Float*)또는Array(Float*)
반환 값
Linf 규범 값을 반환합니다. Float64
예제 — 사용 예시
Query
SELECT LinfNorm((1, 2, 3))
Response
3