Saltar al contenido principal
La siguiente documentación se genera a partir de la tabla del sistema system.functions.

dotProduct

Introducido en: v21.11.0 Calcula el producto escalar (también llamado producto punto) de dos vectores (tuplas o arrays del mismo tamaño). Devuelve la suma de los productos de los elementos correspondientes. Sintaxis
dotProduct(vector1, vector2)
Alias: scalarProduct Argumentos Valor devuelto Devuelve el producto escalar de ambos vectores. (U)Int* o Float* o Decimal Ejemplos Uso básico
Query
SELECT dotProduct((1, 2), (3, 4))
Response
11

flattenTuple

Introducido en: v22.6.0 Aplana una tupla nombrada y anidada. Los elementos de la tupla resultante son las rutas de la tupla de entrada. Sintaxis
flattenTuple(input)
Argumentos Valor devuelto Devuelve una tupla de salida cuyos elementos son rutas de la entrada original. Tuple(T) Ejemplos Ejemplo de uso
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

Introducido en: v1.1.0 Devuelve una tupla agrupando los argumentos de entrada. Para las columnas C1, C2, … con los tipos T1, T2, …, devuelve una tupla con nombre de tipo Tuple(C1 T1, C2 T2, …) que contiene estas columnas si sus nombres son únicos y pueden tratarse como identificadores sin comillas; de lo contrario, devuelve una Tuple(T1, T2, …). La ejecución de la función no tiene ningún coste. Las tuplas se usan normalmente como valores intermedios para un argumento de los operadores IN o para crear una lista de parámetros formales de funciones lambda. Las tuplas no se pueden escribir en una tabla. La función implementa el operador (x, y, ...). Sintaxis
tuple([t1[, t2[ ...]])
Argumentos
  • Ninguno.
Valor devuelto Ejemplos habitual
Query
SELECT tuple(1, 2)
Response
(1,2)

tupleConcat

Introducido en: v23.8.0 Combina las tuplas que se pasan como argumentos. Sintaxis
tupleConcat(tuple1[, tuple2, [...]])
Argumentos
  • tupleN — Número arbitrario de argumentos de tipo Tuple. Tuple(T)
Valor devuelto Devuelve una tupla que contiene todos los elementos de las tuplas de entrada. Tuple(T) Ejemplos Ejemplo de uso
Query
SELECT tupleConcat((1, 2), ('a',), (true, false))
Response
(1, 2, 'a', true, false)

tupleDivide

Introducido en: v21.11.0 Calcula la división de los elementos correspondientes de dos tuplas del mismo tamaño.
La división por cero devuelve inf.
Sintaxis
tupleDivide(t1, t2)
Argumentos Valor devuelto Devuelve una tupla con el resultado de la división. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleDivide((1, 2), (2, 3))
Response
(0.5, 0.6666666666666666)

tupleDivideByNumber

Introducido en: v21.11.0 Devuelve una tupla cuyos elementos se dividen por un número.
La división por cero devuelve inf.
Sintaxis
tupleDivideByNumber(tuple, number)
Argumentos Valor devuelto Devuelve una tupla con los elementos divididos. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleDivideByNumber((1, 2), 0.5)
Response
(2, 4)

tupleElement

Introducido en: v1.1.0 Extrae un elemento de una tupla por índice o por nombre. Para acceder por índice, se espera un índice numérico que empieza en 1. Para acceder por nombre, el nombre del elemento puede proporcionarse como una cadena (solo funciona con tuplas con nombre). Se admiten índices negativos. En este caso, se selecciona el elemento correspondiente, numerado desde el final. Por ejemplo, tuple.-1 es el último elemento de la tupla. Un tercer argumento opcional especifica un valor predeterminado que se devuelve en lugar de lanzar una excepción cuando el elemento al que se accede no existe. Todos los argumentos deben ser constantes. Esta función tiene un coste de ejecución nulo e implementa los operadores x.index y x.name. Sintaxis
tupleElement(tuple, index|name[, default_value])
Argumentos
  • tuple — Una tupla o un array de tuplas. Tuple(T) o Array(Tuple(T))
  • index — Índice de columna, empezando por 1. const UInt8/16/32/64
  • name — Nombre del elemento. const String
  • default_value — Valor predeterminado que se devuelve cuando el índice está fuera de rango o el elemento no existe. Any
Valor devuelto Devuelve el elemento correspondiente al índice o nombre especificados. Any Ejemplos Acceso por índice
Query
SELECT tupleElement((1, 'hello'), 2)
Response
hello
Índices negativos
Query
SELECT tupleElement((1, 'hello'), -1)
Response
hello
Tupla con nombre con una tabla
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
Con valor por defecto
Query
SELECT tupleElement((1, 2), 5, 'not_found')
Response
not_found
Sintaxis del operador
Query
SELECT (1, 'hello').2
Response
hello

tupleHammingDistance

Introducido en: v21.1.0 Devuelve la distancia de Hamming entre dos tuplas del mismo tamaño.
El tipo del resultado se determina del mismo modo que en las funciones aritméticas, en función del número de elementos de las tuplas de entrada.
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 │
└───────┴────────┴────────┴────────┴────────┘
Sintaxis
tupleHammingDistance(t1, t2)
Argumentos Valor devuelto Devuelve la distancia de Hamming. UInt8/16/32/64 Ejemplos Ejemplo de uso
Query
SELECT tupleHammingDistance((1, 2, 3), (3, 2, 1))
Response
2
Con MinHash para detectar cadenas casi duplicadas
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

Introducido en: v23.8.0 Realiza una división entera entre una tupla de numeradores y una tupla de denominadores. Devuelve una tupla de cocientes. Si alguna de las tuplas contiene elementos no enteros, el resultado se calcula redondeando al entero más cercano cada numerador o divisor no entero. La división por 0 genera un error. Sintaxis
tupleIntDiv(tuple_num, tuple_div)
Argumentos Valor devuelto Devuelve un Tuple con los cocientes. Tuple((U)Int*) or Tuple(Float*) or Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleIntDiv((15, 10, 5), (5, 5, 5))
Response
(3, 2, 1)
Con decimales
Query
SELECT tupleIntDiv((15, 10, 5), (5.5, 5.5, 5.5))
Response
(2, 1, 0)

tupleIntDivByNumber

Introducido en: v23.8.0 Realiza la división entera de una tupla de numeradores entre un denominador dado y devuelve una tupla con los cocientes. Si alguno de los parámetros de entrada contiene elementos no enteros, el resultado se calcula redondeando al entero más cercano cada numerador o divisor no entero. Se generará un error en caso de división entre 0. Sintaxis
tupleIntDivByNumber(tuple_num, div)
Argumentos Valor devuelto Devuelve una Tuple con los cocientes. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleIntDivByNumber((15, 10, 5), 5)
Response
(3, 2, 1)
Con decimales
Query
SELECT tupleIntDivByNumber((15.2, 10.7, 5.5), 5.8)
Response
(2, 1, 0)

tupleIntDivOrZero

Introducido en: v23.8.0 Al igual que tupleIntDiv, realiza la división entera entre una tupla de numeradores y una tupla de denominadores, y devuelve una tupla con los cocientes. En caso de división por 0, devuelve 0 como cociente en lugar de generar una excepción. Si alguna de las tuplas contiene elementos no enteros, el resultado se calcula redondeando al entero más cercano cada numerador o divisor no entero. Sintaxis
tupleIntDivOrZero(tuple_num, tuple_div)
Argumentos Valor devuelto Devuelve una Tuple con los cocientes. Devuelve 0 para los cocientes cuyo divisor es 0. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Con divisores iguales a cero
Query
SELECT tupleIntDivOrZero((5, 10, 15), (0, 0, 0))
Response
(0, 0, 0)

tupleIntDivOrZeroByNumber

Introducido en: v23.8.0 Al igual que tupleIntDivByNumber, realiza la división entera de una tupla de numeradores entre un denominador dado y devuelve una tupla con los cocientes. No genera un error si el divisor es cero, sino que devuelve el cociente como cero. Si la tupla o el divisor contienen elementos no enteros, el resultado se calcula redondeando al entero más cercano cada numerador o divisor no entero. Sintaxis
tupleIntDivOrZeroByNumber(tuple_num, div)
Argumentos Valor devuelto Devuelve una tupla con los cocientes y 0 en los casos en que el divisor es 0. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 5)
Response
(3, 2, 1)
Con divisor cero
Query
SELECT tupleIntDivOrZeroByNumber((15, 10, 5), 0)
Response
(0, 0, 0)

tupleMinus

Introducido en: v21.11.0 Calcula la diferencia entre los elementos correspondientes de dos tuplas del mismo tamaño. Sintaxis
tupleMinus(t1, t2)
Alias: vectorDifference Argumentos Valor devuelto Devuelve una tupla que contiene los resultados de las restas. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleMinus((1, 2), (2, 3))
Response
(-1, -1)

tupleModulo

Introducido en: v23.8.0 Devuelve una tupla con los restos (módulos) de las operaciones de división entre dos tuplas. Sintaxis
tupleModulo(tuple_num, tuple_mod)
Argumentos Valor devuelto Devuelve una tupla con los restos de la división. Se produce un error en caso de división por cero. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleModulo((15, 10, 5), (5, 3, 2))
Response
(0, 1, 1)

tupleModuloByNumber

Introducido en: v23.8.0 Devuelve una tupla con los módulos (restos) de dividir una tupla entre un divisor dado. Sintaxis
tupleModuloByNumber(tuple_num, div)
Argumentos Valor devuelto Devuelve una tupla con los residuos de la división. Se produce un error si se divide entre cero. Tuple((U)Int*) or Tuple(Float*) or Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleMultiply

Introducido en: v21.11.0 Calcula el producto de los elementos correspondientes de dos tuplas del mismo tamaño. Sintaxis
tupleMultiply(t1, t2)
Argumentos Valor devuelto Devuelve una tupla con los resultados de las multiplicaciones. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleMultiply((1, 2), (2, 3))
Response
(2, 6)

tupleMultiplyByNumber

Introducido en: v21.11.0 Devuelve una tupla con todos sus elementos multiplicados por un número. Sintaxis
tupleMultiplyByNumber(tuple, number)
Argumentos Valor devuelto Devuelve una tupla con los elementos multiplicados. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleMultiplyByNumber((1, 2), -2.1)
Response
(-2.1, -4.2)

tupleNames

Introducido en: v24.8.0 Convierte una tupla en un array de nombres de columnas. Para una tupla con la forma Tuple(a T, b T, ...), devuelve un array de cadenas que representan los nombres de las columnas de la tupla. Si los elementos de la tupla no tienen nombres explícitos, se usarán sus índices como nombres de columna. Sintaxis
tupleNames(tuple)
Argumentos
  • Ninguno.
Valor devuelto Ejemplos habitual
Query
SELECT tupleNames(tuple(1 as a, 2 as b))
Response
['a','b']

tupleNegate

Introducido en: v21.11.0 Calcula la negación de los elementos de la tupla. Sintaxis
tupleNegate(t)
Argumentos Valor devuelto Devuelve un Tuple con el resultado de la negación. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tupleNegate((1, 2))
Response
(-1, -2)

tuplePlus

Introducido en: v21.11.0 Calcula la suma de los elementos correspondientes de dos tuplas del mismo tamaño. Sintaxis
tuplePlus(t1, t2)
Alias: vectorSum Argumentos Valor devuelto Devuelve una tupla que contiene las sumas de los elementos correspondientes de las tuplas de entrada. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tuplePlus((1, 2), (2, 3))
Response
(3, 5)

tuplePositiveModuloByNumber

Introducido en: v26.4.0 Devuelve una tupla con los módulos positivos (restos) de las divisiones entre una tupla y un divisor dado. A diferencia de tupleModuloByNumber, el resultado siempre es no negativo. Sintaxis
tuplePositiveModuloByNumber(tuple_num, div)
Argumentos Valor devuelto Devuelve una Tuple de restos no negativos. Tuple((U)Int*) o Tuple(Float*) o Tuple(Decimal) Ejemplos Uso básico
Query
SELECT tuplePositiveModuloByNumber((15, 10, 5), 2)
Response
(1, 0, 1)

tupleToNameValuePairs

Introducido en: v21.9.0 Convierte una tupla en un Array de pares (name, value). Por ejemplo, la tupla Tuple(n1 T1, n2 T2, ...) se convierte en Array(Tuple('n1', T1), Tuple('n2', T2), ...). Todos los valores de la tupla deben ser del mismo tipo. Sintaxis
tupleToNameValuePairs(tuple)
Argumentos Valor devuelto Devuelve un array con pares (name, value). Array(Tuple(String, T)) Ejemplos Tupla con nombre
Query
SELECT tupleToNameValuePairs(tuple(1593 AS user_ID, 2502 AS session_ID))
Response
[('1', 1593), ('2', 2502)]
Tuple sin nombre
Query
SELECT tupleToNameValuePairs(tuple(3, 2, 1))
Response
[('1', 3), ('2', 2), ('3', 1)]

untuple

Realiza la sustitución sintáctica de los elementos de tuple en el lugar donde se invoca. Los nombres de las columnas de resultado dependen de la implementación y pueden cambiar. No asuma nombres de columna específicos después de untuple. Sintaxis
untuple(x)
Puede usar la expresión EXCEPT para omitir columnas en el resultado de la consulta. Argumentos
  • x — Una función tuple, una columna o una tupla de elementos. Tuple.
Valor devuelto
  • Ninguno.
Ejemplos Tabla de entrada:
┌─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') │
└─────┴────┴────┴────┴────┴────┴───────────┘
Ejemplo de cómo usar una columna de tipo Tuple como parámetro de la función untuple:
Query
SELECT untuple(v6) FROM kv;
Response
┌─_ut_1─┬─_ut_2─┐
│    33 │ ab    │
│    44 │ cd    │
│    55 │ ef    │
│    66 │ gh    │
│    77 │ kl    │
└───────┴───────┘
Ejemplo de uso de la expresión 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') │
└─────┴────┴────┴────┴───────────┘

Funciones de distancia

Todas las funciones admitidas se describen en la documentación sobre funciones de distancia.
Última modificación el 10 de junio de 2026