array
Introducido en: v1.1.0 Crea un array a partir de los argumentos de la función. Los argumentos deben ser constantes y tener tipos que compartan un supertipo común. Debe pasarse al menos un argumento, porque de lo contrario no queda claro qué tipo de array se debe crear. Esto significa que no se puede usar esta función para crear un array vacío. Para ello, use la funciónemptyArray*.
Use el operador [ ] para obtener la misma funcionalidad.
Sintaxis
x1— Valor constante de cualquier tipo T. Si solo se proporciona este argumento, el array será de tipo T. -[, x2, ..., xN]— N valores constantes adicionales que comparten un supertipo común conx1
Array(T)
Ejemplos
Uso válido
Query
Response
Query
Response
arrayAUCPR
Introducido en: v20.4.0 Calcula el área bajo la curva de precisión-exhaustividad (PR). Una curva de precisión-exhaustividad se crea representando la precisión en el eje y y la exhaustividad en el eje x para todos los umbrales. El valor resultante va de 0 a 1, y un valor más alto indica un mejor rendimiento del modelo, a menos que una puntuación seaNaN, en cuyo caso el resultado es NaN.
La PR AUC es especialmente útil para conjuntos de datos desbalanceados, ya que proporciona una comparación del rendimiento más clara que la ROC AUC en esos casos.
Para obtener más detalles, consulte aquí, aquí y aquí.
Sintaxis
arrayPRAUC
Argumentos
cores— Puntuaciones que genera el modelo de predicción.Array((U)Int*)oArray(Float*)labels— Etiquetas de las muestras, normalmente 1 para una muestra positiva y 0 para una muestra negativa.Array((U)Int*)oArray(Enum)partial_offsets—- Opcional. Un
Array(T)de tres enteros no negativos para calcular un área parcial bajo la curva PR (equivalente a una banda vertical del espacio PR) en lugar del AUC completo. Esta opción es útil para el cálculo distribuido del AUC PR. El array debe contener los siguientes elementos [higher_partitions_tp,higher_partitions_fp,total_positives].higher_partitions_tp: El número de etiquetas positivas en las particiones con puntuaciones más altas.higher_partitions_fp: El número de etiquetas negativas en las particiones con puntuaciones más altas.total_positives: El número total de muestras positivas en todo el conjunto de datos.
Cuando se usa
arr_partial_offsets, arr_scores y arr_labels deben ser solo una partición del conjunto de datos completo, que contenga un intervalo de puntuaciones.
El conjunto de datos debe dividirse en particiones contiguas, donde cada partición contenga el subconjunto de datos cuyas puntuaciones se encuentren dentro de un rango específico.
Por ejemplo:- Una partición podría contener todas las puntuaciones en el rango [0, 0.5).
- Otra partición podría contener puntuaciones en el rango [0.5, 1.0].
NaN si alguna puntuación es NaN. Float64
Ejemplos
Ejemplo de uso
Query
Response
arrayAll
Introducido en: v1.1.0 Devuelve1 si la lambda func(x [, y1, y2, ... yN]) devuelve true para todos los elementos. En caso contrario, devuelve 0.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)cond1_arr, ...— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
1 si la función lambda devuelve true para todos los elementos; en caso contrario, 0 UInt8
Ejemplos
Todos los elementos cumplen la condición
Query
Response
Query
Response
arrayAutocorrelation
Introducido en: v26.4.0 Calcula la autocorrelación de un array. Si se proporcionamax_lag, calcula la correlación solo para los retrasos del intervalo [0, max_lag).
Si no se proporciona max_lag, la calcula para todos los retrasos posibles.
Sintaxis
arr— Array de números.Array(T)max_lag— Opcional. Número máximo de retrasos que se van a calcular. Debe ser un entero no negativo.Integer
Array(Float64)
Ejemplos
Lineal
Query
Response
Query
Response
Query
Response
Query
Response
arrayAvg
Introducido en: v21.1.0 Devuelve el promedio de los elementos del array de origen. Si se especifica una función lambdafunc, devuelve el promedio de los elementos obtenidos como resultado de la lambda.
Sintaxis
func(x[, y1, ..., yN])— Opcional. Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Float64
Ejemplos
Ejemplo básico
Query
Response
Query
Response
arrayBottomK
Introducido en: v26.6.0 Devuelve un array con los K elementos más pequeños del array de entrada, ordenados en orden ascendente. Si se especifica una función lambdaf, los elementos se comparan según el resultado de aplicar f a cada elemento.
Si f acepta varios argumentos, se pasan arrays adicionales a arrayBottomK; sus elementos
se corresponden con los argumentos de f.
Los valores NULL se omiten y no aparecen en el resultado. El tamaño del resultado es como máximo K
y puede ser menor cuando el array de entrada contiene menos elementos distintos de NULL que K.
El tipo de elemento del resultado es la variante no Nullable del tipo de elemento de entrada.
arrayBottomK es una función de orden superior.
Véase también:
arrayTopK, que devuelve en su lugar los K elementos más grandes.arrayPartialSort, que produce los mismos K elementos en las posiciones[1..K], pero también mantiene los elementos restantes en un orden no especificado y no omite los valoresNULL.
f(arr[, arr1, ... ,arrN])— Opcional. Una función lambda para calcular la clave de ordenación de cada elemento.Función lambdaK— El número de elementos más pequeños que se devolverán.(U)Int8/16/32/64arr— Un array.Array(T)arr1, ... ,arrN— N arrays adicionales, en caso de quefacepte varios argumentos.Array(T)
K elementos de arr con los valores más pequeños (o con los menores resultados de la función lambda), ordenados de forma ascendente.
Se omiten los valores NULL. El array devuelto tiene tipo de elemento T incluso cuando la entrada es de tipo Nullable(T).
Ejemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayCompact
Introducido en: v20.1.0 Elimina los elementos duplicados consecutivos de un array, incluidos los valoresnull. El orden de los valores del array resultante viene determinado por el orden del array de origen.
Sintaxis
arr— Un array del que se eliminarán los duplicados.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayConcat
Introducido en: v1.1.0 Combina los arrays que se pasan como argumentos. Sintaxisarr1 [, arr2, ... , arrN]— Número N de arrays que se concatenan.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayCount
Introducido en: v1.1.0 Devuelve el número de elementos para los cualesfunc(arr1[i], ..., arrN[i]) devuelve true.
Si no se especifica func, devuelve el número de elementos no nulos del array.
arrayCount es una función de orden superior.
Sintaxis
func— Opcional. Función que se aplicará a cada elemento de los arrays.Función lambdaarr1, ..., arrN— N arrays.Array(T)
func devuelve true. En caso contrario, devuelve el número de elementos no nulos del array. UInt32
Ejemplos
Ejemplo de uso
Query
Response
arrayCumSum
Introducido en: v1.1.0 Devuelve un array con las sumas parciales (acumuladas) de los elementos del array de origen. Si se especifica una función lambda, la suma se calcula aplicando la función lambda a los elementos del array en cada posición. Sintaxisfunc— Opcional. Una función lambda que se aplica a los elementos del array en cada posición.Función lambdaarr1— El array de origen de valores numéricos.Array(T)[arr2, ..., arrN]— Opcional. Arrays adicionales del mismo tamaño, que se pasan como argumentos a la función lambda si se especifica.Array(T)
Array(T)
Ejemplos
Uso básico
Query
Response
Query
Response
arrayCumSumNonNegative
Introducido en: v18.12.0 Devuelve un array de las sumas parciales acumuladas de los elementos del array de origen, reemplazando por cero cualquier suma acumulada negativa. Si se especifica una función lambda, la suma se calcula aplicando la función lambda a los elementos del array en cada posición. Sintaxisfunc— Opcional. Una función lambda que se aplica a los elementos del array en cada posición.Función lambdaarr1— El array de origen de valores numéricos.Array(T)[arr2, ..., arrN]— Opcional. Arrays adicionales del mismo tamaño, que se pasan como argumentos a la función lambda si se especifica.Array(T)
Array(T)
Ejemplos
Uso básico
Query
Response
Query
Response
arrayDifference
Introducido en: v1.1.0 Calcula un array de diferencias entre elementos adyacentes de un array. El primer elemento del array resultante será 0; el segundo,arr[1] - arr[0]; el tercero, arr[2] - arr[1]; etc.
El tipo de los elementos del array resultante se determina según las reglas de inferencia de tipos para la resta (p. ej., UInt8 - UInt8 = Int16).
Sintaxis
arr— Array para el que se calculan las diferencias entre elementos adyacentes.Array(T)
UInt*
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayDistinct
Introducido en: v1.1.0 Devuelve un array que contiene solo los elementos distintos de un array. Sintaxisarr— Array del que se extraen los elementos distintos.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayDotProduct
Introducido en: v23.5.0 Devuelve el producto escalar de dos arrays.Los dos vectores deben tener el mismo tamaño. Los Arrays y Tuples también pueden contener elementos de distintos tipos.
v1— Primer vector.Array((U)Int* | Float* | BFloat16 | Decimal)oTuple((U)Int* | Float* | Decimal)v2— Segundo vector.Array((U)Int* | Float* | BFloat16 | Decimal)oTuple((U)Int* | Float* | Decimal)
El tipo de retorno se determina según el tipo de los argumentos. Si los Arrays o Tuples contienen tipos de elemento mixtos, el tipo del resultado será el supertipo.
Dos arrays
BFloat16 se acumulan en Float32 y devuelven Float32 (la misma regla que para dos arrays Float32).(U)Int* o Float* o Decimal
Ejemplos
Ejemplo de Array
Query
Response
Query
Response
arrayElement
Introducido en: v1.1.0 Obtiene el elemento del array proporcionado con el índicen, donde n puede ser de cualquier tipo entero.
Si el índice queda fuera de los límites de un array, devuelve un valor predeterminado (0 para números, una cadena vacía para Strings, etc.),
excepto en el caso de argumentos con un array no constante y un índice constante 0. En este caso, se producirá el error Array indices are 1-based.
Cuando n es un array de enteros, devuelve un array con los elementos en las posiciones especificadas (una operación de recopilación).
Esto equivale a arrayMap(i -> arr[i], n), pero cuenta con una implementación independiente y más eficiente.
Las posiciones fuera de los límites producen el valor predeterminado, igual que para un índice escalar.
Los elementos del índice pueden ser Nullable. Un índice NULL produce NULL (y hace que el tipo de elemento resultante sea Nullable) cuando el tipo de elemento puede
envolverse en Nullable; para los tipos de elemento que no pueden estar dentro de Nullable (como Array, mapa), un índice NULL produce el
valor predeterminado en su lugar. Este es el mismo comportamiento que para un índice escalar NULL.
Los arrays en ClickHouse están indexados desde 1.
arr[-1] es el último elemento del array.
El operador [n] proporciona la misma funcionalidad.
El primer argumento también puede ser:
- un
mapa:m['key']devuelve el valor almacenado parakey, o el valor predeterminado del tipo del valor cuando la clave no existe. - un
QBit:q[n]reconstruye el n-ésimo elemento del vector con la precisión completa del tipo de elemento de QBit, leyendo solo los planos de bits del grupo de stride que lo contiene. - un
JSONo unNullable(JSON):json['key']devuelve el valor almacenado en la rutakey, que debe ser una cadena constante, exactamente igual que hace la dot syntaxjson.key. Para unNullable(JSON), el resultado sigue las mismas reglas de nulabilidad quejson.key: una ruta que puede representarNULL(Dynamic, o una typed path que puede envolverse enNullable) daNULLpara las filasNULLexternas, mientras que una typed path no nullable comoArrayomapaconserva ahí su valor predeterminado. La clave también puede ser unNullable(String)constante; una claveNULLdaNULL. El acceso anidado puede encadenarse:json['a']['b'].
arr— El valor del que se lee un elemento.Array(T),mapa(K, V),QBit,JSONoNullable(JSON). -n— Posición del elemento que se quiere obtener o un array de posiciones. Las posiciones pueden ser Nullable.(U)Int*oArray((U)Int*). Para un argumentomapa, una clave de tipoK; para un argumentoJSON, una rutaStringconstante.
n es un escalar, devuelve el elemento de tipo T. Cuando n es un array, devuelve Array(Nullable(T)) si los elementos del índice pueden ser Nullable y T puede envolverse en Nullable; de lo contrario, devuelve Array(T). Para un mapa devuelve el valor de tipo V; para un JSON, el valor almacenado en la ruta. Any o Array(T) o Array(Nullable(T))
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayElementOrNull
Introducido en: v1.1.0 Obtiene el elemento del array proporcionado en el índicen, donde n puede ser de cualquier tipo entero.
Si el índice queda fuera de los límites del array, se devuelve NULL en lugar de un valor predeterminado,
siempre que el tipo de resultado pueda ser Nullable. Para los tipos de elementos que no son Nullable y no pueden
incluirse dentro de Nullable (como Array, mapa), se devuelve en su lugar el valor predeterminado del tipo de elemento.
Cuando n es un array de enteros, devuelve un array con los elementos de las posiciones especificadas.
Esto equivale a arrayMap(i -> arrayElementOrNull(arr, i), n), pero tiene una implementación independiente y más eficiente.
Las posiciones fuera de los límites y los índices NULL producen valores NULL en el array resultante, siguiendo la misma regla que para un índice escalar.
Los arrays de ClickHouse están indexados desde 1.
arr[-1] es el último elemento del array.
El primer argumento también puede ser un mapa: una clave ausente devuelve NULL en lugar del valor predeterminado del tipo de valor, siempre que ese tipo pueda envolverse en Nullable.
JSON no es compatible aquí; utilice arrayElement en su lugar.
Sintaxis
arr— El valor del que se lee un elemento.Array(T)omapa(K, V). -n— Posición del elemento que se desea obtener o un array de posiciones. Las posiciones pueden ser Nullable.(U)Int*oArray((U)Int*). Para un argumentomapa, una clave de tipoK.
n es un escalar, devuelve Nullable(T) si T puede envolverse en Nullable; de lo contrario, T. Cuando n es un array, devuelve Array(Nullable(T)) si T puede envolverse en Nullable; de lo contrario, Array(T). Para un mapa se aplica la misma regla al tipo de valor V. Any o Nullable(T) o Array(T) o Array(Nullable(T))
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayEnumerate
Introducido en: v1.1.0 Devuelve el array[1, 2, 3, ..., length (arr)]
Esta función se usa normalmente con la cláusula ARRAY JOIN. Permite contar algo solo
una vez por cada array después de aplicar ARRAY JOIN.
Esta función también puede usarse en funciones de orden superior. Por ejemplo, puede usarla para obtener los índices del array de los elementos que cumplen una condición.
Sintaxis
arr— El Array que se va a enumerar.Array
[1, 2, 3, ..., length (arr)]. Array(UInt32)
Ejemplos
Ejemplo básico con ARRAY JOIN
Query
Response
arrayEnumerateDense
Introducido en: v18.12.0 Devuelve un array del mismo tamaño que el array de origen, e indica la posición de la primera aparición de cada elemento en el array de origen. Sintaxisarr— El array que se va a enumerar.Array(T)
arr, que indica en qué posición aparece por primera vez cada elemento en el array de origen Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayEnumerateDenseRanked
Introducido en: v20.1.0 Devuelve un array del mismo tamaño que el array de origen e indica la posición en la que aparece por primera vez cada elemento en el array de origen. Permite enumerar un array multidimensional y especificar hasta qué profundidad examinar dentro del array. Sintaxisclear_depth— Enumera los elementos por separado en el nivel especificado. Debe ser menor o igual quemax_arr_depth.UInt*arr— Array de N dimensiones que se va a enumerar.Array(T)max_array_depth— La profundidad efectiva máxima. Debe ser menor o igual que la profundidad dearr.UInt*
Array
Ejemplos
Uso básico
Query
Response
Query
Response
Query
Response
arrayEnumerateUniq
Introducido en: v1.1.0 Devuelve un array del mismo tamaño que el array de origen e indica, para cada elemento, qué posición ocupa entre los elementos con el mismo valor. Esta función es útil al usarARRAY JOIN y la agregación de elementos de array.
La función puede tomar varios arrays del mismo tamaño como argumentos. En este caso, la unicidad se considera para las tuplas de elementos situados en las mismas posiciones en todos los arrays.
Sintaxis
arr1— Primer array que se va a procesar.Array(T)arr2, ...— Opcional. Arrays adicionales del mismo tamaño para la unicidad de las tuplas.Array(UInt32)
Array(T)
Ejemplos
Uso básico
Query
Response
Query
Response
Query
Response
arrayEnumerateUniqRanked
Introducido en: v20.1.0 Devuelve un Array (o un Array multidimensional) con las mismas dimensiones que el Array de origen, e indica para cada elemento qué posición ocupa entre los elementos con el mismo valor. Permite enumerar un Array multidimensional y especificar hasta qué profundidad buscar dentro del Array. Sintaxisclear_depth— Enumera los elementos por separado en el nivel especificado. Entero positivo menor o igual quemax_arr_depth.UInt*arr— Array de N dimensiones que se va a enumerar.Array(T)max_array_depth— La profundidad efectiva máxima. Entero positivo menor o igual que la profundidad dearr.UInt*
arr, en el que cada elemento indica la posición de ese elemento con respecto a otros elementos del mismo valor. Array(T)
Ejemplos
Ejemplo 1
Query
Response
Query
Response
Query
Response
Query
Response
arrayExcept
Introducida en: v25.9.0 Devuelve un array que contiene los elementos desource que no están presentes en except, conservando el orden original.
Esta función realiza una operación de diferencia de conjuntos entre dos arrays. Para cada elemento de source, comprueba si existe en except (mediante una comparación exacta). Si no es así, el elemento se incluye en el resultado.
La operación mantiene estas propiedades:
- Se conserva el orden de los elementos de
source - Los duplicados de
sourcese conservan si no existen enexcept - NULL se trata como un valor independiente
source— El array de origen que contiene los elementos que se van a filtrar.Array(T)except— El array que contiene los elementos que se excluirán del resultado.Array(T)
source que no se encontraron en except. Array(T)
Ejemplos
básico
Query
Response
Query
Response
Query
Response
Query
Response
arrayExists
Introducido en: v1.1.0 Devuelve1 si hay al menos un elemento en el array de origen para el que func(x[, y1, y2, ... yN]) devuelve true. En caso contrario, devuelve 0.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
1 si la función lambda devuelve true para al menos un elemento; en caso contrario, 0. UInt8
Ejemplos
Ejemplo de uso
Query
Response
arrayFill
Introducido en: v20.1.0 La funciónarrayFill procesa secuencialmente un array de origen desde el primer elemento
hasta el último, evaluando una condición lambda en cada posición mediante elementos del
array de origen y de los arrays de condición. Cuando la función lambda da como resultado false en la
posición i, la función sustituye ese elemento por el elemento de la posición i-1
del estado actual del array. El primer elemento siempre se conserva,
independientemente de cualquier condición.
Sintaxis
func(x [, y1, ..., yN])— Una función lambdafunc(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])que opera sobre los elementos del array de origen (x) y los arrays de condición (y).función lambdasource_arr— El array de origen que se va a procesar.función lambda[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Array(T)
Ejemplos
Ejemplo con un solo array
Query
Response
Query
Response
arrayFilter
Introducido en: v1.1.0 Devuelve un array que contiene solo los elementos del array de origen para los que una función lambda devuelve true. Sintaxisfunc(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Array(T)
Ejemplos
Ejemplo 1
Query
Response
Query
Response
arrayFirst
Introducido en: v1.1.0 Devuelve el primer elemento del array de origen para el quefunc(x[, y1, y2, ... yN]) devuelve true; en caso contrario, devuelve un valor predeterminado.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y). Función lambda. -source_arr— El array de origen que se va a procesar.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales para la función lambda.Array(T).
λ es true; de lo contrario, devuelve el valor predeterminado de T.
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayFirstIndex
Introducido en: v1.1.0 Devuelve el índice del primer elemento del array de origen para el quefunc(x[, y1, y2, ... yN]) devuelve true; de lo contrario, devuelve ‘0’.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y). Función lambda. -source_arr— El array de origen que se va a procesar.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T).
func es true; en caso contrario, devuelve 0 UInt32
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayFirstOrNull
Introducido en: v1.1.0 Devuelve el primer elemento del array de origen para el quefunc(x[, y1, y2, ... yN]) devuelve true; de lo contrario, devuelve NULL.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
func es true; de lo contrario, devuelve NULL.
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayFlatten
Introducido en: v20.1.0 Convierte un array de arrays en un array plano. Función:- Se aplica a cualquier nivel de anidamiento de arrays.
- No modifica los arrays que ya son planos.
flatten
Argumentos
arr— Un array multidimensional.Array(Array(T))
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayFlattenedLength
Introducido en: v26.9.0 Devuelve el número total de elementos de un array multidimensional, como si se hubiera aplanado con la funciónarrayFlatten.
Función:
- Se aplica a arrays anidados con cualquier nivel de profundidad.
- Es equivalente a
lengthpara arrays que ya son planos. - Solo sigue el anidamiento de
Array. Los elementos se cuentan en el primer nivel que no es un array, por lo que los elementos de unMap,Tuple,DynamicoVariantanidado no se cuentan individualmente, incluso cuando contienen arrays.
cardinality en PostgreSQL; en cambio, en ClickHouse cardinality es un alias de length y solo cuenta los elementos del array más externo.
Sintaxis
arr— Un array posiblemente multidimensional.Array(T)
UInt64
Ejemplos
Array anidado
Query
Response
Query
Response
Query
Response
Query
Response
arrayFold
Introducido en: v23.10.0 Aplica una función lambda a uno o varios arrays del mismo tamaño y acumula el resultado en un acumulador. Sintaxisλ(x, x1 [, x2, x3, ... xN])— Una función lambdaλ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN]), dondeFes una operación aplicada aaccy a los valores del arrayx, reutilizando el resultado deacc.Función lambdaarr1 [, arr2, arr3, ... arrN]— N arrays sobre los que se opera.Array(T)acc— Valor acumulador con el mismo tipo que el tipo de retorno de la función lambda.
acc.
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
Query
Response
arrayIntersect
Introducido en: v1.1.0 Acepta varios arrays y devuelve un array con los elementos presentes en todos los arrays de origen. El resultado contiene solo valores únicos. SintaxisarrN— N arrays con los que crear el nuevo array.Array(T).
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayJaccardIndex
Introducido en: v23.7.0 Devuelve el índice de Jaccard de dos arrays. Sintaxisarr_x y arr_y Float64
Ejemplos
Ejemplo de uso
Query
Response
arrayJoin
Introducido en: v1.1.0 La funciónarrayJoin toma una fila que contiene un array y lo expande, generando múltiples filas: una por cada elemento del array.
Esto contrasta con las funciones regulares de ClickHouse, que asignan valores de entrada a valores de salida dentro de la misma fila,
y con las funciones de agregación, que toman un grupo de filas y las “comprimen” o “reducen” a una sola fila de resumen
(o a un único valor dentro de una fila de resumen si se usa con GROUP BY).
Todos los valores de las columnas se copian sin más, excepto los valores de la columna a la que se aplica esta función;
estos se sustituyen por el valor correspondiente del array.
unnest (desde la versión 26.5) es un alias de arrayJoin que no distingue entre mayúsculas y minúsculas en forma de llamada a función (SELECT unnest(arr)). La sintaxis de PostgreSQL para fuentes de tabla no es compatible (FROM unnest(...), CROSS JOIN UNNEST(...) y LATERAL). Use la cláusula ARRAY JOIN para esas consultas.
arrayJoin, incluso mediante su alias unnest, no se puede usar en una condición JOIN ON que se evalúe durante la unión, ya que dicha condición debe
preservar el número de filas. Una condición que se aplica solo a un lado y una clave de igualdad basada en arrayJoin se
extraen antes de la unión y no se ven afectadas. Una condición no disyuntiva de ALL INNER JOIN tampoco se ve afectada,
porque en ese caso la condición se aplica después de la unión.
Cuando la expansión depende de un solo lado, muévala a un ARRAY JOIN en una subconsulta antes de la unión; una condición cuyo argumento de arrayJoin hace referencia a columnas de ambos lados debe reestructurarse.
Esta función no es determinista: puede devolver resultados diferentes con los mismos argumentos.
unnest
Argumentos
arr— Un array para expandir.Array(T)
arr.
Ejemplos
Uso básico
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayLast
Introducido en: v1.1.0 Devuelve el último elemento del array de origen para el que una lambdafunc(x [, y1, y2, ... yN]) devuelve true; en caso contrario, devuelve un valor predeterminado.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y). Función lambda. -source— El array de origen que se va a procesar.Array(T). -[, cond1, ... , condN]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T).
func es verdadero; de lo contrario, devuelve el valor predeterminado de T.
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayLastIndex
Introducido en: v1.1.0 Devuelve el índice del último elemento del array de origen para el quefunc(x[, y1, y2, ... yN]) devuelve true; en caso contrario, devuelve ‘0’.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arreglos de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arreglos de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
func devuelve true; de lo contrario, devuelve 0 UInt32
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayLastOrNull
Introducido en: v1.1.0 Devuelve el último elemento del array de origen para el que una función lambdafunc(x [, y1, y2, ... yN]) devuelve true; de lo contrario, devuelve NULL.
Sintaxis
func(x [, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y). Función lambda. -source_arr— El array de origen que se va a procesar.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T).
λ no es true; en caso contrario, devuelve NULL.
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayLevenshteinDistance
Introducido en: v25.4.0 Calcula la distancia de Levenshtein entre dos arrays. SintaxisFloat64
Ejemplos
Ejemplo de uso
Query
Response
arrayLevenshteinDistanceWeighted
Introducido en: v25.4.0 Calcula la distancia de Levenshtein entre dos arrays con pesos personalizados para cada elemento. El número de elementos del array y el de sus pesos deben coincidir. Sintaxisfrom— primer array.Array(T). -to— segundo array.Array(T). -from_weights— pesos del primer array.Array((U)Int*|Float*)to_weights— pesos del segundo array.Array((U)Int*|Float*)
Float64
Ejemplos
Ejemplo de uso
Query
Response
arrayMap
Introducido en: v1.1.0 Devuelve un array que se obtiene de los arrays originales aplicando una función lambda a cada elemento. Sintaxisfunc— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdaarr— N arrays para procesar.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayMax
Introducido en: v21.1.0 Devuelve el elemento máximo del array de origen. Si se especifica unafunción lambda func, devuelve el elemento máximo de los resultados de la lambda.
Sintaxis
func(x[, y1, ..., yN])— Opcional. Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Query
Response
Query
Response
arrayMin
Introducido en: v21.1.0 Devuelve el elemento mínimo del array de origen. Si se especifica una función lambdafunc, devuelve el elemento mínimo de los resultados de la función lambda.
Sintaxis
func(x[, y1, ..., yN])— Opcional. Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)cond1_arr, ...— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Query
Response
Query
Response
arrayNormalizedGini
Introducido en: v25.1.0 Calcula el coeficiente de Gini normalizado. SintaxisTuple(Float64, Float64, Float64)
Ejemplos
Ejemplo de uso
Query
Response
arrayPartialReverseSort
Introducido en: v23.2.0 Esta función es igual quearrayReverseSort, pero con un argumento adicional, limit, que permite una ordenación parcial.
Esta función no es determinista: puede devolver resultados diferentes con los mismos argumentos.
f(arr[, arr1, ... ,arrN])— La función lambda que se aplica a los elementos del arrayx.Función lambdalimit— Valor de índice hasta el que se realizará la ordenación.(U)Int*arr— Array que se va a ordenar.Array(T)arr1, ... ,arrN— N arrays adicionales, en caso de quefacepte varios argumentos.Array(T)
[1..limit] se ordenan
en orden descendente. Los elementos restantes (limit..N] quedan en un orden no especificado.
Ejemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialShuffle
Introducido en: v23.2.0 Devuelve un array del mismo tamaño que el array original, en el que los elementos del rango[1..limit] son un subconjunto aleatorio
del array original. El resto (limit..n] debe contener los elementos que no están en el rango [1..limit], en un orden no definido.
El valor de limit debe estar en el rango [1..n]. Los valores fuera de ese rango equivalen a realizar un arrayShuffle completo:
Esta función no materializará constantes.El valor de
limit debe estar en el rango [1..N]. Los valores fuera de ese rango equivalen a realizar un arrayShuffle completo.Esta función no es determinista: puede devolver resultados diferentes para los mismos argumentos.
arr— El array que se va a barajar.Array(T)seed— Opcional. La semilla que se usará para la generación de números aleatorios. Si no se proporciona, se usa una aleatoria.(U)Int*limit— Opcional. El número para limitar los intercambios de elementos, en el rango[1..N].(U)Int*
Array(T)
Ejemplos
no_limit1
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialSort
Introducido en: v23.2.0 Esta función es igual quearraySort, pero con un argumento adicional, limit, que permite realizar una ordenación parcial.
Esta función no es determinista: puede devolver resultados diferentes para los mismos argumentos.
f(arr[, arr1, ... ,arrN])— La función lambda que se aplica a los elementos del arrayx.Función lambdalimit— Valor de índice hasta el que se realizará la ordenación.(U)Int*arr— Array que se va a ordenar.Array(T)arr1, ... ,arrN— N arrays adicionales, en caso de quefacepte varios argumentos.Array(T)
[1..limit] se ordenan
de forma ascendente. Los elementos restantes (limit..N] quedan en un orden no especificado.
Ejemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPopBack
Introducido en: v1.1.0 Elimina el último elemento del array. Sintaxisarr— El array al que se le eliminará el último elemento.Array(T)
arr, pero sin su último elemento. Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayPopFront
Introducido en: v1.1.0 Elimina el primer elemento del array. Sintaxisarr— El array del que se elimina el primer elemento.Array(T)
arr, pero sin el primer elemento de arr Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayProduct
Introducido en: v21.1.0 Devuelve el producto de los elementos del array de entrada. Si se especifica una función lambdafunc, devuelve el producto de los elementos de los valores resultantes de la lambda.
Sintaxis
func(x[, y1, ..., yN])— Opcional. Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Float64
Ejemplos
Ejemplo básico
Query
Response
Query
Response
arrayPushBack
Introducido en: v1.1.0 Añade un elemento al final del array. Sintaxisarr— El array al que se le añade el valorxal final.Array(T)x—- Valor único que se añade al final del array.
Array(T).
- Solo se pueden añadir números a un array de números, y solo se pueden añadir cadenas a un array de cadenas.
- Al añadir números, ClickHouse establece automáticamente el tipo de
xsegún el tipo de dato del array. - Puede ser
NULL. La función añade un elementoNULLa un array, y el tipo de los elementos del array se convierte enNullable.
arr, pero con un valor adicional x al final del array Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayPushFront
Introducido en: v1.1.0 Añade un elemento al principio del array. Sintaxisarr— El array al final del cual se añadirá el valorx.Array(T). -x—- Valor único que se añadirá al principio del array.
Array(T).
- Solo se pueden añadir números a un array de números, y solo se pueden añadir cadenas a un array de cadenas.
- Al añadir números, ClickHouse establece automáticamente el tipo de
xsegún el tipo de dato del array. - Puede ser
NULL. La función añade un elementoNULLa un array, y el tipo de los elementos del array se convierte enNullable.
arr, pero con un valor adicional x al principio del array Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayROCAUC
Introducido en: v20.4.0 Calcula el área bajo la curva ROC (característica operativa del receptor). Una curva ROC se obtiene trazando la tasa de verdaderos positivos (TPR) en el eje y y la tasa de falsos positivos (FPR) en el eje x para todos los umbrales. Conscale establecido en true, que es el valor predeterminado, el valor resultante va de cero a uno; cuanto mayor sea el valor, mejor será el rendimiento del modelo, y el resultado es NaN cuando el ROC AUC no está definido, por ejemplo, si no hay etiquetas positivas o no hay etiquetas negativas.
Una puntuación NaN siempre produce un resultado NaN.
El ROC AUC (también conocido simplemente como AUC) es un concepto de aprendizaje automático.
Para obtener más información, consulte aquí, aquí y aquí.
Sintaxis
arrayAUC
Argumentos
scores— Puntuaciones proporcionadas por el modelo de predicción.Array((U)Int*)oArray(Float*)labels— Etiquetas de las muestras, normalmente 1 para una muestra positiva y 0 para una muestra negativa.Array((U)Int*)oEnumscale— Opcional. Determina si se devuelve el área normalizada. Si es false, devuelve en su lugar el área bajo la curva de TP (verdaderos positivos) x FP (falsos positivos). Valor predeterminado: true.Boolpartial_offsets—- Un array de cuatro enteros no negativos para calcular un área parcial bajo la curva ROC (equivalente a una banda vertical del espacio ROC) en lugar del AUC completo. Esta opción es útil para el cálculo distribuido del ROC AUC. El array debe contener los siguientes elementos [
higher_partitions_tp,higher_partitions_fp,total_positives,total_negatives]. Array de Enteros no negativos. Opcional.higher_partitions_tp: El número de etiquetas positivas en las particiones con puntuaciones más altas.higher_partitions_fp: El número de etiquetas negativas en las particiones con puntuaciones más altas.total_positives: El número total de muestras positivas de todo el conjunto de datos.total_negatives: El número total de muestras negativas de todo el conjunto de datos.
Cuando se usa
arr_partial_offsets, arr_scores y arr_labels deben corresponder solo a una partición del conjunto de datos completo, que contenga un intervalo de puntuaciones.
El conjunto de datos debe dividirse en particiones contiguas, donde cada partición contenga el subconjunto de datos cuyas puntuaciones estén dentro de un rango específico.
Por ejemplo:- Una partición podría contener todas las puntuaciones en el intervalo [0, 0.5).
- Otra partición podría contener puntuaciones en el intervalo [0.5, 1.0].
NaN si una puntuación es NaN y, cuando scale es true, también si el ROC AUC no está definido porque no hay etiquetas positivas o negativas. Float64
Ejemplos
Ejemplo de uso
Query
Response
arrayRandomSample
Introducido en: v23.10.0 Devuelve un subconjunto consamples elementos aleatorios de un array de entrada. Si samples supera el tamaño del array de entrada, el tamaño de la muestra se limita al tamaño del array; es decir, se devuelven todos los elementos del array, pero no se garantiza su orden. La función puede manejar tanto arrays planos como arrays anidados.
Esta función no es determinista: puede devolver resultados diferentes para los mismos argumentos.
arr— El array de entrada o array multidimensional del que se extraen los elementos de la muestra.Array(T)samples— El número de elementos que se incluirán en la muestra aleatoria.(U)Int*
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayReduce
Introducido en: v1.1.0 Aplica una función de agregación a los elementos del array y devuelve el resultado. El nombre de la función de agregación se pasa como una cadena entre comillas simples:'max', 'sum'.
Al usar funciones de agregación paramétricas, el parámetro se indica después del nombre de la función, entre paréntesis: 'uniqUpTo(6)'.
Sintaxis
agg_f— El nombre de una función de agregación, que debe ser una constante.Stringarr1[, arr2, ... , arrN]— N arrays correspondientes a los argumentos deagg_f.Array(T)
Query
Response
Query
Response
Query
Response
arrayReduceInRanges
Introducido en: v20.4.0 Aplica una función de agregación a los elementos del array en los rangos especificados y devuelve un array con el resultado correspondiente a cada rango. La función devolverá el mismo resultado que varias llamadas aarrayReduce(agg_func, arraySlice(arr1, index, length), ...).
Sintaxis
agg_f— El nombre de la función de agregación que se va a utilizar.Stringranges— El rango sobre el que se realizará la agregación. Un array de tuplas,(i, r), que contiene el índiceia partir del cual se empieza y el rangorsobre el que se agrega.Array(T)oTuple(T)arr1[, arr2, ... ,arrN]— N arrays como argumentos de la función de agregación.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayRemove
Introducido en: v25.11.0 Elimina de un array todos los elementos iguales a un valor dado. LosNULL se consideran iguales.
Sintaxis
array_remove
Argumentos
arr— Array(T) -elem— T
Array(T)
Ejemplos
Ejemplo 1
Query
Response
Query
Response
arrayResize
Introducido en: v1.1.0 Cambia la longitud del array. Sintaxisarr— Array que se va a redimensionar.Array(T)size— -La nueva longitud del array. Sisizees menor que el tamaño original del array, el array se trunca por la derecha. Sisizees mayor que el tamaño inicial del array, el array se amplía por la derecha con valoresextendero con los valores predeterminados del tipo de dato de los elementos del array.extender— Valor que se usará para ampliar el array. Puede serNULL.
size. Array(T)
Ejemplos
Ejemplo 1
Query
Response
Query
Response
arrayReverse
Introducido en: v1.1.0 Invierte el orden de los elementos de un array dado.La función
reverse(arr) cumple la misma función, pero también funciona con otros tipos de datos,
además de Arrays.arr— El array que se va a invertir.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayReverseFill
Introducido en: v20.1.0 La funciónarrayReverseFill procesa secuencialmente un array de origen desde el último
elemento hasta el primero, evaluando una condición lambda en cada posición con elementos
del array de origen y de los arrays de condición. Cuando la condición resulta falsa en la
posición i, la función sustituye ese elemento por el elemento de la posición i+1
del estado actual del array. El último elemento siempre se conserva,
independientemente de la condición.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que actúa sobre los elementos del array de origen (x) y de los arrays de condición (y).Función lambdasource_arr— El array de origen que se va a procesar.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Array(T)
Ejemplos
Ejemplo con un solo array
Query
Response
Query
Response
arrayReverseSort
Introducido en: v1.1.0 Ordena los elementos de un array en orden descendente. Si se especifica una funciónf, el array proporcionado se ordena según el resultado
de aplicar la función a los elementos del array, y luego se invierte el array ordenado.
Si f acepta varios argumentos, a la función arrayReverseSort se le pasan varios arrays con los que
se corresponderán los argumentos de func.
Si el array que se va a ordenar contiene -Inf, NULL, NaN o Inf, se ordenarán en el siguiente orden:
-InfInfNaNNULL
arrayReverseSort es una función de orden superior.
Sintaxis
f(y1[, y2 ... yN])— La función lambda que se aplica a los elementos del arrayx. -arr— Un array que se debe ordenar.Array(T)-arr1, ..., arrN— Opcional. N arrays adicionales, sifacepta varios argumentos.
x ordenado en orden descendente si no se proporciona ninguna función lambda; de lo contrario,
devuelve un array ordenado según la lógica de la función lambda proporcionada y luego invertido. Array(T).
Ejemplos
Ejemplo 1
Query
Response
Query
Response
arrayReverseSplit
Introducido en: v20.1.0 Divide un array de origen en varios arrays. Cuandofunc(x[, y1, ..., yN]) devuelve un valor distinto de cero, el array se dividirá a la derecha del elemento. El array no se dividirá después del último elemento.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).función lambdasource_arr— El array de origen que se va a procesar.función lambda[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Array(Array(T))
Ejemplos
Ejemplo de uso
Query
Response
arrayRotateLeft
Introducido en: v23.8.0 Rota un array hacia la izquierda el número especificado de elementos. Los valores negativos den se interpretan como una rotación hacia la derecha por el valor absoluto de n.
Sintaxis
arr— El array cuyos elementos se van a rotar.Array(T). -n— Número de elementos que se van a rotar.(U)Int8/16/32/64.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayRotateRight
Introducido en: v23.8.0 Rota un array hacia la derecha el número de elementos especificado. Los valores negativos den se tratan como una rotación hacia la izquierda por el valor absoluto de n.
Sintaxis
arr— El array cuyos elementos se rotan.Array(T). -n— Número de elementos que se rotan.(U)Int8/16/32/64.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
arrayShiftLeft
Introducido en: v23.8.0 Desplaza un array hacia la izquierda el número de elementos especificado. Los nuevos elementos se rellenan con el argumento proporcionado o con el valor predeterminado del tipo de elemento del array. Si el número de elementos es negativo, el array se desplaza hacia la derecha. Sintaxisarr— El array cuyos elementos se desplazarán.Array(T). -n— Número de elementos que se desplazarán.(U)Int8/16/32/64. -default— Opcional. Valor predeterminado para los elementos nuevos.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
Query
Response
arrayShiftRight
Introducido en: v23.8.0 Desplaza un array hacia la derecha el número de elementos especificado. Los nuevos elementos se rellenan con el argumento proporcionado o con el valor predeterminado del tipo de elemento del array. Si el número de elementos es negativo, el array se desplaza hacia la izquierda. Sintaxisarr— El array cuyos elementos se desplazarán.Array(T)n— Número de elementos que se desplazarán.(U)Int8/16/32/64default— Opcional. Valor predeterminado de los elementos nuevos.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
Query
Response
arrayShingles
Introducido en: v24.1.0 Genera un array de shingles (similares a los ngrams en cadenas), es decir, subarrays consecutivos de una longitud especificada del array de entrada. Sintaxisarr— Array a partir del cual se genera un array de shingles.Array(T)l— La longitud de cada shingle.(U)Int*
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayShuffle
Introducido en: v23.2.0 Devuelve un array del mismo tamaño que el array original, con los elementos en orden aleatorio. Los elementos se reordenan de modo que cada posible permutación tenga la misma probabilidad de aparecer.Esta función no materializará las constantes.
Esta función no es determinista: puede devolver resultados diferentes para los mismos argumentos.
arr— El array que se va a barajar.Array(T)seed (optional)— Opcional. La semilla que se usará para la generación de números aleatorios. Si no se proporciona, se usa una aleatoria.(U)Int*
Array(T)
Ejemplos
Ejemplo sin semilla (resultados inestables)
Query
Response
Query
Response
arraySimilarity
Introducido en: v25.4.0 Calcula la similitud entre dos arrays de0 a 1 según la distancia de Levenshtein ponderada.
Sintaxis
from— primer arrayArray(T)to— segundo arrayArray(T)from_weights— pesos del primer array.Array((U)Int*|Float*)to_weights— pesos del segundo array.Array((U)Int*|Float*)
0 y 1 para los dos arrays, calculado a partir de la distancia de Levenshtein ponderada Float64
Ejemplos
Ejemplo de uso
Query
Response
arraySlice
Introducido en: v1.1.0 Devuelve un segmento del array, incluidos los elementosNULL.
El primer argumento también puede ser un QBit: el resultado es un QBit sobre las dimensiones seleccionadas (una proyección a un subconjunto de dimensiones). En ese caso, offset y length deben ser constantes, porque la dimensión de un QBit forma parte de su tipo y el segmento debe seleccionar al menos una dimensión. Un segmento alineado con los límites de los grupos de stride de QBit conserva el stride y reutiliza los flujos de planos de bits almacenados sin copiarlos.
Sintaxis
arr— Array que se va a segmentar.Array(T)oQBitoffset— Desplazamiento desde el borde del array. Un valor positivo indica un desplazamiento desde la izquierda y un valor negativo indica un desplazamiento desde la derecha. La numeración de los elementos del array comienza en1.(U)Int*length— La longitud del segmento requerido. Si especifica un valor negativo, la función devuelve un segmento abierto[offset, array_length - length]. Si omite el valor, la función devuelve el segmento[offset, the_end_of_array].(U)Int*
length elementos a partir del offset especificado Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arraySort
Introducido en: v1.1.0 Ordena los elementos del array proporcionado en orden ascendente. Si se especifica una función lambdaf, el orden de clasificación viene determinado por el resultado de
la lambda aplicada a cada elemento del array.
Si la lambda acepta varios argumentos, a la función arraySort se le pasan varios
arrays a los que corresponderán los argumentos de f.
Si el array que se va a ordenar contiene -Inf, NULL, NaN o Inf, se ordenarán en el siguiente orden:
-InfInfNaNNULL
arraySort es una función de orden superior.
Sintaxis
f(y1[, y2 ... yN])— La función lambda que se aplicará a los elementos del arrayx. -arr— Un array que se ordenará.Array(T)-arr1, ..., arrN— Opcional. N arrays adicionales sifacepta varios argumentos.
arr ordenado de forma ascendente si no se proporciona ninguna función lambda; en caso contrario,
devuelve un array ordenado según la lógica de la función lambda proporcionada. Array(T).
Ejemplos
Ejemplo 1
Query
Response
Query
Response
Query
Response
arraySplit
Introducido en: v20.1.0 Divide un array de origen en varios arrays. Cuandofunc(x [, y1, ..., yN]) devuelve un valor distinto de cero, el array se dividirá antes del elemento. El array no se dividirá antes del primer elemento.
Sintaxis
func(x[, y1, ..., yN])— Una función lambda que opera sobre los elementos del array de origen (x) y de los arrays de condición (y).Función lambda. -source_arr— El array de origen que se va a dividirArray(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T).
Array(Array(T))
Ejemplos
Ejemplo de uso
Query
Response
arraySum
Introducido en: v21.1.0 Devuelve la suma de los elementos del array de origen. Si se especifica una función lambdafunc, devuelve la suma de los elementos resultantes de la lambda.
Sintaxis
func(x[, y1, ..., yN])— Opcional. Una función lambda que opera sobre los elementos del array de origen (x) y los arrays de condición (y).función lambdasource_arr— El array de origen que se va a procesar.Array(T), cond1_arr, ... , condN_arr]— Opcional. N arrays de condición que proporcionan argumentos adicionales a la función lambda.Array(T)
Query
Response
Query
Response
arraySymmetricDifference
Introducida en: v25.4.0 Toma varios arrays y devuelve un array con los elementos que no están presentes en todos los arrays de origen. El resultado contiene solo valores únicos.La diferencia simétrica de más de dos conjuntos se define matemáticamente
como el conjunto de todos los elementos de entrada que aparecen en un número impar de conjuntos de entrada.
En cambio, la función
arraySymmetricDifference simplemente devuelve el conjunto de elementos de entrada que no aparecen en todos los conjuntos de entrada.arrN— N arrays a partir de las cuales se crea el nuevo array.Array(T).
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayTopK
Introducido en: v26.6.0 Devuelve un array con los K elementos más grandes del array de entrada, ordenados en orden descendente. Si se especifica unafunción lambda f, los elementos se comparan según el resultado de aplicar f a cada elemento.
Si f acepta varios argumentos, se pasan arrays adicionales a arrayTopK, y sus elementos
corresponden a los argumentos de f.
Los valores NULL se omiten y no aparecen en el resultado. El tamaño del resultado es como máximo K
y puede ser menor cuando el array de entrada contiene menos elementos no nulos que K.
El tipo de elemento del resultado es la contraparte no Nullable del tipo de elemento de entrada.
arrayTopK es una función de orden superior.
Consulte también arrayBottomK, que devuelve en su lugar los K elementos más pequeños.
Sintaxis
f(arr[, arr1, ... ,arrN])— Opcional. Una función lambda para calcular la clave de ordenación de cada elemento.Función lambdaK— El número de elementos más grandes que se van a devolver.(U)Int8/16/32/64arr— Un array.Array(T)arr1, ... ,arrN— N arrays adicionales, en el caso de quefacepte varios argumentos.Array(T)
K elementos de arr con los valores más altos (o los valores más altos devueltos por la función lambda), ordenados de forma descendente.
Se omiten los NULL. El array devuelto tiene tipo de elemento T incluso cuando la entrada es de tipo Nullable(T).
Ejemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayTranspose
Introducido en: v26.4.0 Traspone un array bidimensional. Todos los arrays internos deben tener la misma longitud. Sintaxisarr— Un array bidimensional para transponer. Todos los arrays internos deben tener la misma longitud.Array(Array(T))
[i][j] del resultado es igual al elemento [j][i] de la entrada. Array(Array(T))
Ejemplos
Matriz cuadrada
Query
Response
Query
Response
Query
Response
arrayUnion
Introducido en: v24.10.0 Toma varios arrays y devuelve un array que contiene todos los elementos que están presentes en alguno de los arrays de origen. El resultado contiene solo valores únicos. SintaxisarrN— N arrays a partir de las cuales se crea el nuevo array.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayUniq
Introducido en: v1.1.0 Cuando se pasa un solo argumento, cuenta el número de elementos distintos del array. Cuando se pasan varios argumentos, cuenta el número de tuplas distintas formadas por elementos en las mismas posiciones de varios arrays. Por ejemplo,SELECT arrayUniq([1,2], [3,4], [5,6]) formará las siguientes tuplas:
- Posición 1: (1,3,5)
- Posición 2: (2,4,6)
2.
Todos los arrays pasados deben tener la misma longitud.
Sintaxis
arr1— Array cuyo número de elementos únicos se va a contar.Array(T)[, arr2, ..., arrN]— Opcional. Arrays adicionales que se utilizan para contar el número de tuplas únicas de elementos en las posiciones correspondientes de varios arrays.Array(T)
UInt32
Ejemplos
Argumento único
Query
Response
Query
Response
arrayWithConstant
Introducido en: v20.1.0 Crea un array de longitudlength relleno con la constante x.
Sintaxis
length— Número de elementos del array.(U)Int*x— El valor de cada uno de losNelementos del array, de cualquier tipo.
N elementos con valor x. Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayZip
Introducido en: v20.1.0 Combina varios arrays en un único array. El array resultante contiene los elementos correspondientes de los arrays de origen, agrupados en tuplas en el orden de los argumentos indicado. Sintaxisarr1, arr2, ... , arrN— N arrays para combinar en un único array.Array(T)
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
arrayZipUnaligned
Introducido en: v20.1.0 Combina varios arrays en un único array, lo que permite arrays no alineados (de distinta longitud). El array resultante contiene los elementos correspondientes de los arrays de origen agrupados en tuplas en el orden en que aparecen los argumentos. Sintaxisarr1, arr2, ..., arrN— N arrays para combinar en un solo array.Array(T)
Array(T) o Tuple(T1, T2, ...)
Ejemplos
Ejemplo de uso
Query
Response
countEqual
Introducido en: v1.1.0 Devuelve la cantidad de elementos del array que son iguales ax. Equivale a arrayCount(elem -> elem = x, arr).
Los elementos NULL se consideran valores distintos.
Sintaxis
arr— Array en el que buscar.Array(T)x— Valor del array cuyas apariciones se deben contar. Cualquier tipo.
x UInt64
Ejemplos
Ejemplo de uso
Query
Response
empty
Introducido en: v1.1.0 Comprueba si el array de entrada está vacío. Un array se considera vacío si no contiene ningún elemento.Puede optimizarse habilitando el ajuste
optimize_functions_to_subcolumns. Con optimize_functions_to_subcolumns = 1, la función lee solo la subcolumna size0 en lugar de leer y procesar toda la columna de array. La consulta SELECT empty(arr) FROM TABLE; se transforma en SELECT arr.size0 = 0 FROM TABLE;.arr— Array de entrada.Array(T)
1 para un array vacío o 0 para un array no vacío UInt8
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayDate
Introducido en: v1.1.0 Devuelve un array vacío de Date Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayDateTime
Introducido en: v1.1.0 Devuelve un array DateTime vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayFloat32
Introducido en: v1.1.0 Devuelve un array(Float32) vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayFloat64
Introducido en: v1.1.0 Devuelve un array(Float64) vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayInt16
Introducido en: v1.1.0 Devuelve un array vacío de Int16 Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayInt32
Introducido en: v1.1.0 Devuelve un array Int32 vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayInt64
Introducido en: v1.1.0 Devuelve un array Int64 vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayInt8
Introducido en: v1.1.0 Devuelve un array Int8 vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayString
Introducido en: v1.1.0 Devuelve un array de String vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayToSingle
Introducido en: v1.1.0 Acepta un array vacío y devuelve un array de un solo elemento igual al valor predeterminado. Sintaxisarr— Un array vacío.Array(T)
Array(T)
Ejemplos
Ejemplo básico
Query
Response
emptyArrayUInt16
Introducido en: v1.1.0 Devuelve un array de UInt16 vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayUInt32
Introducido en: v1.1.0 Devuelve un array vacío de UInt32 Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayUInt64
Introducido en: v1.1.0 Devuelve un array de UInt64 vacío Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
emptyArrayUInt8
Introducido en: v1.1.0 Devuelve un array vacío de UInt8 Sintaxis- Ninguno.
Array(T)
Ejemplos
Ejemplo de uso
Query
Response
has
Introducido en: v1.1.0 Indica si el array contiene el elemento especificado, si el mapa contiene la clave especificada o si el objeto JSON contiene la ruta especificada. Para JSON, se admiten rutas anidadas mediante notación de puntos (p. ej., ‘a.b.c’). Cuando el primer argumento es un array constante y el segundo es una columna o una expresión,has(constant_array, column) se comporta como column IN (constant_array) y puede usar la clave primaria y los índices de omisión de datos para optimizarse. Por ejemplo, has([1, 10, 100], id) puede aprovechar el índice de clave primaria si id forma parte de la PRIMARY KEY.
Esta optimización también se aplica cuando la columna se envuelve en funciones monótonas (p. ej., has([...], toDate(ts))).
Sintaxis
haystack— El array, mapa o JSON de origen.ArrayoMapoJSONneedle— El valor que se va a buscar (un elemento en un array, una clave en un mapa o una cadena de ruta en JSON).
1 si haystack contiene el needle especificado; de lo contrario, 0. UInt8
Ejemplos
Uso básico de mapa
Query
Response
Query
Response
Query
Response
Query
Response
hasAll
Introducido en: v1.1.0 Comprueba si un array es un subconjunto de otro.- Un array vacío es un subconjunto de cualquier array.
Nullse trata como un valor.- El orden de los valores en ambos arrays no importa.
set— Array de cualquier tipo con elementos.Array(T)subset— Array de cualquier tipo que comparte un supertipo común consety contiene elementos cuya condición de subconjunto desetdebe comprobarse.Array(T)
1, sisetcontiene todos los elementos desubset.0, en caso contrario.
NO_COMMON_TYPE si los elementos de set y subset no comparten un supertipo común.
Ejemplos
Arrays vacíos
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAny
Introducido en: v1.1.0 Comprueba si dos arrays se intersecan en alguno de sus elementos.Nullse procesa como un valor.- El orden de los valores en ambos arrays no importa.
arr_x— Array de cualquier tipo que contiene un conjunto de elementos.Array(T)arr_y— Array de cualquier tipo que comparte un supertipo común con el arrayarr_x.Array(T)
1, siarr_xyarr_ytienen al menos un elemento en común.0, en caso contrario.
NO_COMMON_TYPE si alguno de los elementos de los dos arrays no comparte un supertipo común.
Ejemplos
Un array está vacío
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasSubstr
Introducido en: v20.6.0 Comprueba si todos los elementos de array2 aparecen en array1 en el mismo orden exacto. Por lo tanto, la función devolverá1 si y solo si array1 = prefijo + array2 + sufijo.
En otras palabras, la función comprueba si todos los elementos de array2 están contenidos en array1, como hace la función hasAll.
Además, comprueba que los elementos aparezcan en el mismo orden tanto en array1 como en array2.
- La función devolverá
1si array2 está vacío. NULLse procesa como un valor. En otras palabras,hasSubstr([1, 2, NULL, 3, 4], [2,3])devolverá0. Sin embargo,hasSubstr([1, 2, NULL, 3, 4], [2,NULL,3])devolverá1- El orden de los valores en ambos arrays sí importa.
NO_COMMON_TYPE si alguno de los elementos de los dos arrays no comparte un supertipo común.
Sintaxis
arr1— Array de cualquier tipo con un conjunto de elementos.Array(T)arr2— Array de cualquier tipo con un conjunto de elementos.Array(T)
1 si arr1 contiene arr2. De lo contrario, devuelve 0. UInt8
Ejemplos
Ambos arrays están vacíos
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
indexOf
Introducido en: v1.1.0 Devuelve el índice del primer elemento con el valor ‘x’ (a partir de 1) si está en el array. Si el array no contiene el valor buscado, la función devuelve0.
Los elementos con valor NULL se tratan como valores normales.
Los elementos NaN no siguen la regla de NULL anterior.
Una comparación escalar de dos valores NaN (NaN = NaN) es 0, pero indexOf puede indicar que se encontró un elemento NaN.
Que lo haga es un detalle de implementación. No dependa de un comportamiento específico.
Para encontrar uno, compruébelo: arrayFirstIndex(x -> isNaN(x), arr) devuelve su posición y arrayExists(x -> isNaN(x), arr), un indicador.
Sintaxis
arr— Un array en el que buscarx.Array(T)x— Valor del primer elemento coincidente dearrcuyo índice se debe devolver.UInt64
x en arr, si existe. En caso contrario, devuelve 0. UInt64
Ejemplos
Ejemplo básico
Query
Response
Query
Response
indexOfAssumeSorted
Introducido en: v24.12.0 Devuelve el índice del primer elemento con el valor ‘x’ (empezando en1) si está en el array.
Si el array no contiene el valor buscado, la función devuelve 0.
A diferencia de la función
indexOf, esta función asume que el array está ordenado en
orden ascendente. Si el array no está ordenado, el resultado no está definido.arr— Un array ordenado en el que buscar.Array(T)x— Valor del primer elemento coincidente dearrordenado cuyo índice se debe devolver.UInt64
x en arr, si existe. En caso contrario, devuelve 0. UInt64
Ejemplos
Ejemplo básico
Query
Response
length
Introducido en: v1.1.0 Calcula la longitud de una cadena o un array.- Para argumentos String o FixedString: calcula el número de bytes de la cadena.
- Para argumentos array: calcula el número de elementos del array.
- Para argumentos QBit: calcula la dimensión del vector.
- Si se aplica a un argumento FixedString o QBit, la función es una expresión constante.
OCTET_LENGTH, CARDINALITY
Argumentos
x— Valor para el que se calcula el número de bytes (para String/FixedString), de elementos (para array) o la dimensión (para QBit).StringoFixedStringoArray(T)oQBit
x, el número de elementos del array x o la dimensión del QBit x UInt64
Ejemplos
Ejemplo de String
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
notEmpty
Introducido en: v1.1.0 Comprueba si el array de entrada no está vacío. Un array se considera no vacío si contiene al menos un elemento.Se puede optimizar habilitando la opción
optimize_functions_to_subcolumns. Con optimize_functions_to_subcolumns = 1, la función lee solo la subcolumna size0 en lugar de leer y procesar toda la columna de tipo Array. La consulta SELECT notEmpty(arr) FROM table se transforma en SELECT arr.size0 != 0 FROM TABLE.arr— Array de entrada.Array(T)
1 para un array no vacío o 0 para un array vacío UInt8
Ejemplos
Ejemplo de uso
Query
Response
notHas
Introducido en: v26.8.0 Devuelve si el array no contiene el elemento especificado, el mapa no contiene la clave especificada o el objeto JSON no contiene la ruta especificada. Es la negación dehas.
Sintaxis
haystack— El array, mapa o JSON de entrada.ArrayoMapoJSONneedle— El valor que se buscará (elemento del array, clave del mapa o cadena de ruta en JSON).
1 si el haystack no contiene el needle especificado; de lo contrario, 0. UInt8
Ejemplos
Uso básico de Array
Query
Response
Query
Response
Query
Response
Query
Response
randomHadamardTransform
Introducido en: v26.7.0 Aplica una transformada de Hadamard aleatoria a un vector de coma flotante:y = (1/sqrt(k)) * (H * D * x), donde
D es una matriz diagonal de signos deterministas +/-1 elegidos por seed y H es la transformada
de Walsh-Hadamard.
La transformada es una rotación ortogonal que preserva la norma y reparte uniformemente la energía de un vector
entre las coordenadas, haciendo que la distribución por coordenada sea aproximadamente gaussiana e
independiente de los datos. Es útil como paso de preprocesamiento antes de la cuantización escalar y, cuando se
trunca, como una proyección aleatoria de Johnson-Lindenstrauss / Hadamard aleatorizada submuestreada (SRHT).
La transformada completa (sin truncamiento) conserva la longitud de entrada. Es exacta para las siguientes longitudes:
- una potencia de dos (una transformada rápida de Walsh-Hadamard simple);
2^k * mconmen{12, 20}(órdenes que tienen una matriz de Hadamard+/-1, por ejemplo,768 = 64 * 12,1536 = 128 * 12,3072 = 256 * 12,2560 = 128 * 20), aplicada como la transformada exacta de KroneckerH_(2^k) (x) H_m(sin multiplicaciones en coma flotante);2^k * mcon cualquier otromimpar hasta64(órdenes que no tienen una matriz de Hadamard+/-1; estas solo existen para los órdenes1,2y los múltiplos de4), aplicada como la transformada exacta de KroneckerH_(2^k) (x) C_m, dondeC_mes una matriz ortogonal real de transformada discreta de Hartley. Esto cubre las familias de embeddings restantes, como3584 = 512 * 7,1152 = 128 * 9,1408 = 128 * 11.
64 no tiene una forma exacta y requeriría
relleno con ceros hasta una potencia de dos mayor; se rechaza con una excepción en lugar de devolver
silenciosamente un vector más largo. Use una longitud compatible o pase output_dims para calcular una proyección
truncada de una longitud arbitraria (véase más abajo).
El resultado tiene el mismo tipo de elemento que la entrada; un array de entrada vacío devuelve un array vacío
(output_dims no se aplica a él).
seed(opcional, valor predeterminado0): selecciona el patrón de signos; el mismo seed siempre produce la misma transformada.output_dims(opcional; de forma predeterminada, la longitud de la transformada): conserva solo las primerasoutput_dimscoordenadas, convirtiendo la transformada en una proyección aleatoria que acepta cualquier longitud. El escalado1/sqrt(output_dims)hace que el resultado preserve la norma en la transformada completa y la preserve en valor esperado cuando se trunca. No debe superar la longitud de la transformada. Como un prefijo truncado del factor de transformada discreta de HartleyC_mno tiene el leverage uniforme de una matriz de Hadamard+/-1, unoutput_dimstruncado sobre una longitud de la familia Hartley (o sobre cualquier longitud sin un factor exacto) usa la transformada de potencia de dos con relleno de ceros, que sí conserva esa propiedad.
vector— Vector que se transformará.Array(BFloat16)oArray(Float32)oArray(Float64)seed— Opcional. Semilla para los signos deterministas de +/-1 (valor predeterminado: 0).UInt*output_dims— Opcional. Trunca el resultado a este número de coordenadas iniciales (valor predeterminado: la longitud completa de la transformada, que coincide con la longitud de entrada para cada dimensión admitida). Especificar output_dims también habilita la transformada para longitudes para las que no existe una forma exacta de transformada completa.UInt*
Array(BFloat16) o Array(Float32) o Array(Float64)
Ejemplos
Transformada completa para una longitud que es una potencia de dos
Query
Response
Query
Response
Query
Response
2^k * m conserva la longitud de la entrada (sin relleno)
Query
Response
range
Introducido en: v1.1.0 Devuelve un Array de números desdestart hasta end - 1, en incrementos de step.
Los tipos admitidos son:
-
UInt8/16/32/64 -
Int8/16/32/64] -
Todos los argumentos
start,endystepdeben ser de uno de los tipos admitidos anteriores. Los elementos del Array devuelto serán de un supertipo de los argumentos. -
Se genera una excepción si la función devuelve un Array con una longitud total mayor que el número de elementos especificado por la configuración
function_range_max_elements_in_block. -
Devuelve
NULLsi algún argumento tiene el tipo Nullable(nothing). Se genera una excepción si algún argumento tiene el valorNULL(tipo Nullable(T)).
start— Opcional. El primer elemento del array. Obligatorio si se usastep. Valor predeterminado:0. -end— Obligatorio. El número antes del cual se construye el array. -step— Opcional. Determina el paso incremental entre cada elemento del array. Valor predeterminado:1.
start hasta end - 1 con incrementos de step. Array(T)
Ejemplos
Ejemplo de uso
Query
Response
replicate
Introducido en: v1.1.0 Crea un array con un único valor. Sintaxisarr, relleno con el valor x. Array(T)
Ejemplos
Ejemplo de uso
Query
Response
reverse
Introducido en: v1.1.0 Invierte el orden de los elementos del array de entrada o de los caracteres de la cadena de entrada. SintaxisQuery
Response
Query
Response