메인 콘텐츠로 건너뛰기
아래 문서는 system.functions 시스템 테이블을 기반으로 생성됩니다.

dotProduct

도입 버전: v21.11.0 두 벡터(크기가 같은 튜플 또는 배열)의 내적(스칼라 곱)을 계산합니다. 대응하는 원소별 곱의 합을 반환합니다. 구문
dotProduct(vector1, vector2)
별칭: scalarProduct 인수
  • vector1 — 첫 번째 벡터입니다. Array(T) 또는 Tuple(T)
  • vector2 — 두 번째 벡터입니다. 첫 번째 벡터와 크기가 같아야 합니다. Array(T) 또는 Tuple(T)
반환 값 두 벡터의 내적을 반환합니다. (U)Int*, Float* 또는 Decimal 예시 기본 사용법
Query
SELECT dotProduct((1, 2), (3, 4))
Response
11

flattenTuple

도입 버전: v22.6.0 이름이 있는 중첩 튜플을 평탄화합니다. 반환된 튜플의 요소는 입력 튜플의 경로입니다. 구문
flattenTuple(input)
인수 반환 값 원래 입력의 경로들이 요소로 들어 있는 출력 튜플을 반환합니다. 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, …에 대해, 이름이 고유하고 따옴표 없는 식별자로 처리할 수 있으면 해당 컬럼을 포함하는 named 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)
인수 반환 값 나눗셈 결과를 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleDivide((1, 2), (2, 3))
Response
(0.5, 0.6666666666666666)

tupleDivideByNumber

도입 버전: v21.11.0 모든 요소를 수로 나눈 튜플을 반환합니다.
0으로 나누면 inf를 반환합니다.
구문
tupleDivideByNumber(tuple, number)
인수 반환 값 각 요소를 나눈 Tuple을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleDivideByNumber((1, 2), 0.5)
Response
(2, 4)

tupleElement

도입 버전: v1.1.0 인덱스 또는 이름으로 튜플에서 요소를 추출합니다. 인덱스로 접근할 때는 1부터 시작하는 숫자 인덱스를 지정해야 합니다. 이름으로 접근할 때는 요소 이름을 문자열로 지정할 수 있습니다(이름이 지정된 Tuple에서만 작동함). 음수 인덱스도 지원합니다. 이 경우 끝에서부터 번호를 매긴 해당 요소를 선택합니다. 예를 들어 tuple.-1은 튜플의 마지막 요소입니다. 선택적 세 번째 인수는 기본값을 지정하며, 접근하려는 요소가 존재하지 않을 때 예외를 발생시키는 대신 이 값을 반환합니다. 모든 인수는 상수여야 합니다. 이 함수는 런타임 비용이 전혀 없으며 x.indexx.name 연산자를 구현합니다. 구문
tupleElement(tuple, index|name[, default_value])
인수
  • tuple — 튜플 또는 튜플의 배열입니다. Tuple(T) 또는 Array(Tuple(T))
  • index — 1부터 시작하는 컬럼 인덱스입니다. const UInt8/16/32/64
  • name — 요소의 이름입니다. const String
  • default_value — 인덱스가 범위를 벗어나거나 요소가 존재하지 않을 때 반환되는 기본값입니다. Any
반환 값 지정된 인덱스 또는 이름에 해당하는 요소를 반환합니다. Any 예시 인덱스 접근
Query
SELECT tupleElement((1, 'hello'), 2)
Response
hello
음수 인덱싱
Query
SELECT tupleElement((1, 'hello'), -1)
Response
hello
table이 포함된 named tuple
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)
인수
  • t1 — 첫 번째 튜플입니다. Tuple(*)
  • t2 — 두 번째 튜플입니다. Tuple(*)
반환 값 해밍 거리를 반환합니다. 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(tuple_num, tuple_div)
인수 반환 값 몫으로 이루어진 Tuple을 반환합니다. 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)

tupleIntDivByNumber

도입 버전: v23.8.0 분자 튜플을 지정된 분모로 정수 나눗셈하여 몫의 튜플을 반환합니다. 입력 매개변수 중 하나라도 정수가 아닌 요소를 포함하면, 정수가 아닌 각 분자 또는 제수를 가장 가까운 정수로 반올림한 뒤 결과를 계산합니다. 0으로 나누면 오류가 발생합니다. 구문
tupleIntDivByNumber(tuple_num, div)
인수 반환 값 몫으로 이루어진 Tuple을 반환합니다. 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(tuple_num, tuple_div)
인수 반환 값 몫으로 이루어진 Tuple을 반환합니다. 제수가 0인 항목의 몫은 0을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 제수가 0인 경우
Query
SELECT tupleIntDivOrZero((5, 10, 15), (0, 0, 0))
Response
(0, 0, 0)

tupleIntDivOrZeroByNumber

도입 버전: v23.8.0 tupleIntDivByNumber와 마찬가지로, 주어진 분모로 분자 튜플에 대해 정수 나눗셈을 수행하고 몫으로 이루어진 튜플을 반환합니다. 분모가 0이어도 오류를 발생시키지 않으며, 대신 몫을 0으로 반환합니다. 튜플이나 div에 정수가 아닌 요소가 포함되어 있으면, 정수가 아닌 각 분자 또는 분모를 가장 가까운 정수로 반올림한 뒤 결과를 계산합니다. 구문
tupleIntDivOrZeroByNumber(tuple_num, div)
인수 반환 값 제수가 0인 경우 해당 몫을 0으로 하는 몫의 Tuple을 반환합니다. 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)
별칭: vectorDifference 인수 반환 값 뺄셈 결과가 들어 있는 Tuple을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleMinus((1, 2), (2, 3))
Response
(-1, -1)

tupleModulo

v23.8.0에서 도입됨 두 튜플의 나눗셈 연산에서 각 요소의 나머지(모듈로)로 이루어진 튜플을 반환합니다. 구문
tupleModulo(tuple_num, tuple_mod)
인수 반환 값 나눗셈의 나머지 값으로 이루어진 Tuple을 반환합니다. 0으로 나누면 오류가 발생합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleModulo((15, 10, 5), (5, 3, 2))
Response
(0, 1, 1)

tupleModuloByNumber

Introduced in: v23.8.0 튜플을 지정된 제수로 나눈 각 나머지로 구성된 튜플을 반환합니다. 구문
tupleModuloByNumber(tuple_num, div)
인수 반환 값 나눗셈의 나머지로 이루어진 Tuple을 반환합니다. 0으로 나누면 오류가 발생합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleMultiply

Introduced in: v21.11.0 동일한 크기의 두 튜플의 각 대응 요소를 곱한 값을 계산합니다. 구문
tupleMultiply(t1, t2)
인수 반환 값 곱셈 결과를 담은 Tuple을 반환합니다. 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) 예시 기본 사용법
Query
SELECT tupleMultiplyByNumber((1, 2), -2.1)
Response
(-2.1, -4.2)

tupleNames

도입 버전: v24.8.0 튜플을 컬럼 이름 배열로 변환합니다. Tuple(a T, b T, ...) 형식의 튜플에 대해서는 튜플에서 이름이 지정된 컬럼을 나타내는 문자열 배열을 반환합니다. 튜플 요소에 명시적인 이름이 없으면 해당 인덱스를 대신 컬럼 이름으로 사용합니다. 구문
tupleNames(tuple)
인수
  • 없음.
반환 값 예시 일반적인 사용
Query
SELECT tupleNames(tuple(1 as a, 2 as b))
Response
['a','b']

tupleNegate

도입 버전: v21.11.0 튜플 요소의 음수를 계산합니다. 구문
tupleNegate(t)
인수 반환 값 음수화 결과가 포함된 Tuple을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tupleNegate((1, 2))
Response
(-1, -2)

tuplePlus

도입 버전: v21.11.0 크기가 같은 두 튜플의 대응하는 요소를 더한 값을 계산합니다. 구문
tuplePlus(t1, t2)
별칭: vectorSum 인수 반환 값 입력된 튜플 인수에서 같은 위치의 원소끼리 합한 결과를 담은 튜플을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tuplePlus((1, 2), (2, 3))
Response
(3, 5)

tuplePositiveModuloByNumber

도입 버전: v26.4.0 튜플과 지정된 제수로 나눈 연산의 양의 모듈로(나머지)로 이루어진 튜플을 반환합니다. tupleModuloByNumber와 달리 결과는 항상 0 이상입니다. 구문
tuplePositiveModuloByNumber(tuple_num, div)
인수 반환 값 음수가 아닌 나머지로 이루어진 Tuple을 반환합니다. Tuple((U)Int*) 또는 Tuple(Float*) 또는 Tuple(Decimal) 예시 기본 사용법
Query
SELECT tuplePositiveModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleToNameValuePairs

도입 버전: v21.9.0 튜플을 (name, value) 쌍으로 이루어진 배열로 변환합니다. 예를 들어, 튜플 Tuple(n1 T1, n2 T2, ...)Array(Tuple('n1', T1), Tuple('n2', T2), ...)로 변환됩니다. 튜플의 모든 값은 동일한 타입이어야 합니다. 구문
tupleToNameValuePairs(tuple)
인수 반환 값 (name, value) 쌍으로 구성된 배열을 반환합니다. Array(Tuple(String, T)) 예시 Named tuple
Query
SELECT tupleToNameValuePairs(tuple(1593 AS user_ID, 2502 AS session_ID))
Response
[('1', 1593), ('2', 2502)]
이름 없는 튜플
Query
SELECT tupleToNameValuePairs(tuple(3, 2, 1))
Response
[('1', 3), ('2', 2), ('3', 1)]

untuple

호출 위치에서 튜플 요소를 구문 수준에서 치환합니다. 결과 컬럼의 이름은 구현에 따라 달라질 수 있으며, 이후 변경될 수 있습니다. untuple 이후의 특정 컬럼 이름을 가정하지 마십시오. 구문
untuple(x)
EXCEPT 표현식을 사용하여 쿼리 결과에서 컬럼을 제외할 수 있습니다. 인수
  • xtuple 함수, 컬럼 또는 요소로 이루어진 튜플입니다. Tuple.
반환 값
  • 없음.
예시 입력 테이블:
┌─key─┬─v1─┬─v2─┬─v3─┬─v4─┬─v5─┬─v6────────┐
│   1 │ 10 │ 20 │ 40 │ 30 │ 15 │ (33,'ab') │
│   2 │ 25 │ 65 │ 70 │ 40 │  6 │ (44,'cd') │
│   3 │ 57 │ 30 │ 20 │ 10 │  5 │ (55,'ef') │
│   4 │ 55 │ 12 │  7 │ 80 │ 90 │ (66,'gh') │
│   5 │ 30 │ 50 │ 70 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴────┴────┴───────────┘
Tuple형 컬럼을 untuple 함수의 매개변수로 사용하는 예시:
Query
SELECT untuple(v6) FROM kv;
Response
┌─_ut_1─┬─_ut_2─┐
│    33 │ ab    │
│    44 │ cd    │
│    55 │ ef    │
│    66 │ gh    │
│    77 │ kl    │
└───────┴───────┘
EXCEPT 표현식 사용 예시:
Query
SELECT untuple((* EXCEPT (v2, v3),)) FROM kv;
Response
┌─key─┬─v1─┬─v4─┬─v5─┬─v6────────┐
│   1 │ 10 │ 30 │ 15 │ (33,'ab') │
│   2 │ 25 │ 40 │  6 │ (44,'cd') │
│   3 │ 57 │ 10 │  5 │ (55,'ef') │
│   4 │ 55 │ 80 │ 90 │ (66,'gh') │
│   5 │ 30 │ 25 │ 55 │ (77,'kl') │
└─────┴────┴────┴────┴───────────┘

거리 함수

지원되는 모든 함수는 거리 함수 문서에 설명되어 있습니다.
마지막 수정일 2026년 6월 10일