array
Introduzido em: v1.1.0 Cria um array a partir dos argumentos da função. Os argumentos devem ser constantes e ter tipos que compartilhem um supertipo comum. É necessário fornecer pelo menos um argumento, pois, caso contrário, não fica claro qual tipo de array deve ser criado. Isso significa que você não pode usar esta função para criar um array vazio. Para isso, use a funçãoemptyArray*.
Use o operador [ ] para obter a mesma funcionalidade.
Sintaxe
x1— Valor constante de qualquer tipo T. Se apenas este argumento for fornecido, o array será do tipo T. -[, x2, ..., xN]— N valores constantes adicionais que compartilham um supertipo comum comx1
Array(T)
Exemplos
Uso válido
Query
Response
Query
Response
arrayAUCPR
Introduzido em: v20.4.0 Calcula a área sob a curva de precisão-recall (PR). Uma curva de precisão-recall é criada ao plotar a precisão no eixo y e o recall no eixo x em todos os limiares. O valor resultante varia de 0 a 1, com valores mais altos indicando melhor desempenho do modelo, a menos que uma pontuação sejaNaN, caso em que o resultado é NaN.
A PR AUC é particularmente útil para conjuntos de dados desbalanceados, proporcionando uma comparação de desempenho mais clara do que a ROC AUC nesses casos.
Para mais detalhes, consulte aqui, aqui e aqui.
Sintaxe
arrayPRAUC
Argumentos
cores— Pontuações fornecidas pelo modelo de predição.Array((U)Int*)ouArray(Float*)labels— Rótulos das amostras, geralmente 1 para amostra positiva e 0 para amostra negativa.Array((U)Int*)ouArray(Enum)partial_offsets—- Opcional. Um
Array(T)de três inteiros não negativos para calcular uma área parcial sob a curva PR (equivalente a uma faixa vertical no espaço PR) em vez da AUC completa. Essa opção é útil para o cálculo distribuído da PR AUC. O array deve conter os seguintes elementos [higher_partitions_tp,higher_partitions_fp,total_positives].higher_partitions_tp: O número de rótulos positivos nas partições com pontuações mais altas.higher_partitions_fp: O número de rótulos negativos nas partições com pontuações mais altas.total_positives: O número total de amostras positivas em todo o conjunto de dados.
Quando
arr_partial_offsets é usado, arr_scores e arr_labels devem corresponder apenas a uma partição de todo o conjunto de dados, contendo um intervalo de pontuações.
O conjunto de dados deve ser dividido em partições contíguas, em que cada partição contém o subconjunto de dados cujas pontuações se enquadram em um intervalo específico.
Por exemplo:- Uma partição pode conter todas as pontuações no intervalo [0, 0.5).
- Outra partição pode conter pontuações no intervalo [0.5, 1.0].
NaN se alguma pontuação for NaN. Float64
Exemplos
Exemplo de uso
Query
Response
arrayAll
Introduzido em: v1.1.0 Retorna1 se a lambda func(x [, y1, y2, ... yN]) retornar verdadeiro para todos os elementos. Caso contrário, retorna 0.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)cond1_arr, ...— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
1 se a função lambda retornar verdadeiro para todos os elementos; caso contrário, 0 UInt8
Exemplos
Todos os elementos satisfazem a condição
Query
Response
Query
Response
arrayAutocorrelation
Introduzido em: v26.4.0 Calcula a autocorrelação de um array. Semax_lag for informado, calcula a correlação apenas para defasagens no intervalo [0, max_lag).
Se max_lag não for informado, calcula para todas as defasagens possíveis.
Sintaxe
arr— Array de números.Array(T)max_lag— Opcional. Número máximo de defasagens a calcular. Deve ser um inteiro não negativo.Integer
Array(Float64)
Exemplos
Linear
Query
Response
Query
Response
Query
Response
Query
Response
arrayAvg
Introduzido em: v21.1.0 Retorna a média dos elementos do array de origem. Se uma função lambdafunc for especificada, retorna a média dos elementos resultantes da lambda.
Sintaxe
func(x[, y1, ..., yN])— Opcional. Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Float64
Exemplos
Exemplo básico
Query
Response
Query
Response
arrayBottomK
Introduzido em: v26.6.0 Retorna um array com os K menores elementos do array de entrada, ordenados em ordem crescente. Se uma função lambdaf for especificada, os elementos serão comparados com base no resultado de f aplicado a cada elemento.
Se f aceitar vários argumentos, arrays adicionais serão passados para arrayBottomK, e seus elementos
corresponderão aos argumentos de f.
Os valores NULL são ignorados e não aparecem no resultado. O tamanho do resultado é, no máximo, K
e pode ser menor quando o array de entrada contiver menos de K elementos não nulos.
O tipo de elemento do resultado é a versão não Nullable do tipo de elemento de entrada.
arrayBottomK é uma função de ordem superior.
Veja também:
arrayTopK, que retorna os K maiores elementos.arrayPartialSort, que produz os mesmos K elementos nas posições[1..K], mas também mantém os elementos restantes em ordem não especificada e não ignora valores nulos.
f(arr[, arr1, ... ,arrN])— Opcional. Uma função lambda para calcular a chave de ordenação de cada elemento.Função lambdaK— O número de menores elementos a serem retornados.(U)Int8/16/32/64arr— Um array.Array(T)arr1, ... ,arrN— N arrays adicionais, casofaceite vários argumentos.Array(T)
K elementos de arr com os menores valores (ou os menores resultados da função lambda), ordenados em ordem crescente.
Valores NULL são ignorados. O array retornado tem tipo de elemento T mesmo quando a entrada tem tipo Nullable(T).
Exemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayCompact
Introduzido em: v20.1.0 Remove elementos duplicados consecutivos de um array, incluindo valoresnull. A ordem dos valores no array resultante é determinada pela ordem dos elementos no array de origem.
Sintaxe
arr— Um array do qual serão removidos os valores duplicados.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayConcat
Introduzido em: v1.1.0 Combina os arrays passados como argumentos. Sintaxearr1 [, arr2, ... , arrN]— N arrays para concatenar.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayCount
Introduzido em: v1.1.0 Retorna o número de elementos para os quaisfunc(arr1[i], ..., arrN[i]) retorna verdadeiro.
Se func não for especificada, retorna o número de elementos não nulos no array.
arrayCount é uma função de ordem superior.
Sintaxe
func— Opcional. Função a ser aplicada a cada elemento do(s) array(s).Função lambdaarr1, ..., arrN— N arrays.Array(T)
func retorna verdadeiro. Caso contrário, retorna o número de elementos não zero no array. UInt32
Exemplos
Exemplo de uso
Query
Response
arrayCumSum
Introduzido em: v1.1.0 Retorna um array com as somas parciais (acumuladas) dos elementos no array de origem. Se uma função lambda for especificada, a soma será calculada aplicando a função lambda aos elementos do array em cada posição. Sintaxefunc— Opcional. Uma função lambda a ser aplicada aos elementos do array em cada posição.Função lambdaarr1— O array de origem de valores numéricos.Array(T)[arr2, ..., arrN]— Opcional. Arrays adicionais do mesmo tamanho, passados como argumentos para a função lambda, se especificada.Array(T)
Array(T)
Exemplos
Uso básico
Query
Response
Query
Response
arrayCumSumNonNegative
Introduzido em: v18.12.0 Retorna um array com as somas parciais (acumuladas) dos elementos no array de origem, substituindo por zero qualquer soma acumulada negativa. Se uma função lambda for especificada, a soma é calculada aplicando a função lambda aos elementos do array em cada posição. Sintaxefunc— Opcional. Uma função lambda a ser aplicada aos elementos do array em cada posição.Função lambdaarr1— O array de origem de valores numéricos.Array(T)[arr2, ..., arrN]— Opcional. Arrays adicionais do mesmo tamanho, passados como argumentos para a função lambda, se ela for especificada.Array(T)
Array(T)
Exemplos
Uso básico
Query
Response
Query
Response
arrayDifference
Introduzido em: v1.1.0 Calcula um array com as diferenças entre elementos adjacentes do array. O primeiro elemento do array resultante será 0, o segundoarr[1] - arr[0], o terceiro arr[2] - arr[1] e assim por diante.
O tipo dos elementos no array resultante é determinado pelas regras de inferência de tipo para subtração (por exemplo, UInt8 - UInt8 = Int16).
Sintaxe
arr— Array para o qual serão calculadas as diferenças entre elementos adjacentes.Array(T)
UInt*
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayDistinct
Introduzido em: v1.1.0 Retorna um array que contém apenas os elementos distintos de um array. Sintaxearr— Array da qual extrair elementos distintos.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayDotProduct
Introduzido em: v23.5.0 Retorna o produto escalar de dois arrays.Os dois vetores devem ter o mesmo tamanho. Arrays e Tuples também podem conter tipos de elementos mistos.
v1— Primeiro vetor.Array((U)Int* | Float* | BFloat16 | Decimal)ouTuple((U)Int* | Float* | Decimal)v2— Segundo vetor.Array((U)Int* | Float* | BFloat16 | Decimal)ouTuple((U)Int* | Float* | Decimal)
O tipo de retorno é determinado pelos tipos dos argumentos. Se Arrays ou Tuples contiverem tipos de elemento mistos, o tipo do resultado será o supertipo.
Dois arrays
BFloat16 acumulam em Float32 e retornam Float32 (a mesma regra que para dois arrays Float32).(U)Int* ou Float* ou Decimal
Exemplos
Exemplo de Array
Query
Response
Query
Response
arrayElement
Introduzido em: v1.1.0 Obtém o elemento do array fornecido no índicen, em que n pode ser de qualquer tipo inteiro.
Se o índice estiver fora dos limites de um array, a função retornará um valor padrão (0 para números, uma string vazia para strings etc.),
exceto no caso de argumentos com um array não constante e um índice constante 0. Nesse caso, ocorrerá o erro Array indices are 1-based.
Quando n é um array de inteiros, retorna um array com os elementos nas posições especificadas (uma operação de coleta).
Isso é equivalente a arrayMap(i -> arr[i], n), mas tem uma implementação separada e mais eficiente.
Posições fora dos limites geram o valor padrão, assim como para um índice escalar.
Os elementos do índice podem ser Nullable. Um índice NULL produz NULL (e torna Nullable o tipo de elemento do resultado) quando o tipo de elemento pode ser
envolvido em Nullable; para tipos de elemento que não podem estar dentro de Nullable (como Array, Map), um índice NULL produz o
valor padrão. Esse é o mesmo comportamento de um índice escalar NULL.
Arrays no ClickHouse são indexados a partir de 1.
arr[-1] é o último item do array.
O operador [n] fornece a mesma funcionalidade.
O primeiro argumento também pode ser:
- um
Map:m['key']retorna o valor armazenado parakeyou o valor padrão do tipo do valor quando a chave está ausente. - um
QBit:q[n]reconstrói o n-ésimo elemento do vetor com a precisão total do tipo de elemento QBit, lendo apenas os planos de bits do grupo de stride que o contém. - um
JSONou umNullable(JSON):json['key']retorna o valor armazenado no caminhokey, que deve ser uma string constante, exatamente como faz a notação de pontojson.key. Para umNullable(JSON), o resultado segue as mesmas regras de nulidade dejson.key: um caminho que pode representarNULL(Dynamicou um caminho tipado que pode ser encapsulado emNullable) produzNULLpara as linhasNULLexternas, enquanto um caminho tipado não nulo, comoArrayouMap, mantém ali seu valor padrão. A chave também pode ser umNullable(String)constante; uma chaveNULLproduzNULL. O acesso aninhado pode ser encadeado:json['a']['b'].
arr— O valor do qual ler um elemento.Array(T),Map(K, V),QBit,JSONouNullable(JSON). -n— Posição do elemento a ser obtido ou um array de posições. As posições podem serNullable.(U)Int*ouArray((U)Int*). Para um argumentoMap, uma chave do tipoK; para um argumentoJSON, um caminho constante do tipoString.
n é um escalar, retorna o elemento do tipo T. Quando n é um array, retorna Array(Nullable(T)) se os elementos de índice forem Nullable e T puder ser encapsulado em Nullable; caso contrário, retorna Array(T). Para um Map, retorna o valor do tipo V; para um JSON, o valor armazenado no caminho. Any ou Array(T) ou Array(Nullable(T))
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayElementOrNull
Introduzido em: v1.1.0 Obtém o elemento do array fornecido no índicen, em que n pode ser qualquer tipo inteiro.
Se o índice estiver fora dos limites do array, NULL será retornado em vez de um valor padrão,
desde que o tipo de resultado possa ser Nullable. Para tipos de elemento que ainda não são Nullable e não podem ser
envolvidos por Nullable (como Array, Map), o valor padrão do tipo de elemento será retornado.
Quando n é um array de inteiros, retorna um array dos elementos nas posições especificadas.
Isso é equivalente a arrayMap(i -> arrayElementOrNull(arr, i), n), mas tem uma implementação separada e mais eficiente.
Posições fora dos limites e índices NULL produzem valores NULL no array de resultado, seguindo a mesma regra de um índice escalar.
Arrays no ClickHouse são indexados a partir de 1.
arr[-1] é o último item do array.
O primeiro argumento também pode ser um Map: uma chave ausente resulta em NULL em vez do valor padrão do tipo do valor, desde que esse tipo possa ser encapsulado em Nullable.
JSON não é compatível aqui; use arrayElement nesse caso.
Sintaxe
arr— O valor do qual ler um elemento.Array(T)ouMap(K, V). -n— Posição do elemento a ser obtido ou um array de posições. As posições podem serNullable.(U)Int*ouArray((U)Int*). Para um argumentoMap, uma chave do tipoK.
n é escalar, retorna Nullable(T) se T puder ser encapsulado em Nullable; caso contrário, T. Quando n é um array, retorna Array(Nullable(T)) se T puder ser encapsulado em Nullable; caso contrário, Array(T). Para um Map, a mesma regra se aplica ao tipo de valor V. Any ou Nullable(T) ou Array(T) ou Array(Nullable(T))
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayEnumerate
Introduzido em: v1.1.0 Retorna o Array[1, 2, 3, ..., length (arr)]
Essa função normalmente é usada com a cláusula ARRAY JOIN. Ela permite contar algo apenas
uma vez para cada array após a aplicação de ARRAY JOIN.
Essa função também pode ser usada em funções de ordem superior. Por exemplo, você pode usá-la para obter os índices do array dos elementos que correspondem a uma condição.
Sintaxe
arr— O array a ser enumerado.Array
[1, 2, 3, ..., length (arr)]. Array(UInt32)
Exemplos
Exemplo básico com ARRAY JOIN
Query
Response
arrayEnumerateDense
Introduzido em: v18.12.0 Retorna um array do mesmo tamanho que o array de origem, indicando a posição da primeira ocorrência de cada elemento no array de origem. Sintaxearr— O array a ser enumerado.Array(T)
arr, indicando onde cada elemento aparece pela primeira vez no array de origem Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayEnumerateDenseRanked
Introduzido em: v20.1.0 Retorna um array do mesmo tamanho que o array de origem, indicando onde cada elemento aparece pela primeira vez no array de origem. Permite enumerar um array multidimensional, com a possibilidade de especificar até que profundidade inspecionar o array. Sintaxeclear_depth— Enumera separadamente os elementos no nível especificado. Deve ser menor ou igual amax_arr_depth.UInt*arr— Array multidimensional a ser enumerado.Array(T)max_array_depth— A profundidade efetiva máxima. Deve ser menor ou igual à profundidade dearr.UInt*
Array
Exemplos
Uso básico
Query
Response
Query
Response
Query
Response
arrayEnumerateUniq
Introduzido em: v1.1.0 Retorna um array do mesmo tamanho que o array de origem, indicando, para cada elemento, qual é sua posição entre os elementos com o mesmo valor. Esta função é útil ao usarARRAY JOIN e agregação de elementos de array.
A função pode receber vários arrays do mesmo tamanho como argumentos. Nesse caso, a unicidade é considerada para Tuples de elementos nas mesmas posições em todos os arrays.
Sintaxe
arr1— Primeiro array a ser processado.Array(T)arr2, ...— Opcional. Arrays adicionais do mesmo tamanho para unicidade de tuplas.Array(UInt32)
Array(T)
Exemplos
Uso básico
Query
Response
Query
Response
Query
Response
arrayEnumerateUniqRanked
Introduzido em: v20.1.0 Retorna um array (ou array multidimensional) com as mesmas dimensões do array de origem, indicando, para cada elemento, qual é sua posição entre os elementos com o mesmo valor. Permite enumerar um array multidimensional com a possibilidade de especificar até que profundidade procurar dentro do array. Sintaxeclear_depth— Enumera separadamente os elementos no nível especificado. Inteiro positivo menor ou igual amax_arr_depth.UInt*arr— Array N-dimensional a ser enumerado.Array(T)max_array_depth— A profundidade efetiva máxima. Inteiro positivo menor ou igual à profundidade dearr.UInt*
arr, em que cada elemento mostra a posição desse elemento em relação aos outros elementos com o mesmo valor. Array(T)
Exemplos
Exemplo 1
Query
Response
Query
Response
Query
Response
Query
Response
arrayExcept
Introduzido em: v25.9.0 Retorna um array contendo os elementos desource que não estão presentes em except, preservando a ordem original.
Esta função realiza uma operação de diferença de conjuntos entre dois arrays. Para cada elemento em source, ela verifica se esse elemento existe em except (usando comparação exata). Caso não exista, o elemento é incluído no resultado.
A operação mantém as seguintes propriedades:
- A ordem dos elementos de
sourceé preservada - Duplicatas em
sourcesão preservadas se não existirem emexcept - NULL é tratado como um valor distinto
source— O array de entrada que contém os elementos a serem filtrados.Array(T)except— O array que contém os elementos a serem excluídos do resultado.Array(T)
source que não foram encontrados em except. Array(T)
Exemplos
básico
Query
Response
Query
Response
Query
Response
Query
Response
arrayExists
Introduzido em: v1.1.0 Retorna1 se houver pelo menos um elemento no array de origem para o qual func(x[, y1, y2, ... yN]) retorne true. Caso contrário, retorna 0.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
1 se a função lambda retornar verdadeiro para pelo menos um elemento; caso contrário, 0. UInt8
Exemplos
Exemplo de uso
Query
Response
arrayFill
Introduzido em: v20.1.0 A funçãoarrayFill processa sequencialmente um array de origem, do primeiro
ao último elemento, avaliando uma condição lambda em cada posição com base em elementos do
array de origem e dos arrays de condição. Quando a função lambda retorna false na
posição i, a função substitui esse elemento pelo elemento na posição i-1
do estado atual do array. O primeiro elemento é sempre preservado,
independentemente de qualquer condição.
Sintaxe
func(x [, y1, ..., yN])— Uma função lambdafunc(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])que opera nos elementos do array de origem (x) e dos arrays de condição (y).função lambdasource_arr— O array de origem a ser processado.função lambda[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais à função lambda.Array(T)
Array(T)
Exemplos
Exemplo com um único array
Query
Response
Query
Response
arrayFilter
Introduzido em: v1.1.0 Retorna um array que contém apenas os elementos do array de origem para os quais uma função lambda retorna true. Sintaxefunc(x[, y1, ..., yN])— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Array(T)
Exemplos
Exemplo 1
Query
Response
Query
Response
arrayFirst
Introduzido em: v1.1.0 Retorna o primeiro elemento no array de origem para o qualfunc(x[, y1, y2, ... yN]) retorna true; caso contrário, retorna um valor padrão.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y). Função lambda. -source_arr— O array de origem a ser processado.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais à função lambda.Array(T).
λ é true; caso contrário, retorna o valor padrão de T.
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayFirstIndex
Introduzido em: v1.1.0 Retorna o índice do primeiro elemento no array de origem para o qualfunc(x[, y1, y2, ... yN]) retorna verdadeiro; caso contrário, retorna ‘0’.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y). Função lambda. -source_arr— O array de origem a ser processado.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T).
func é verdadeiro; caso contrário, retorna 0 UInt32
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayFirstOrNull
Introduzido em: v1.1.0 Retorna o primeiro elemento do array de origem para o qualfunc(x[, y1, y2, ... yN]) retorna true; caso contrário, retorna NULL.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que atua sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais à função lambda.Array(T)
func é verdadeiro; caso contrário, retorna NULL.
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayFlatten
Introduzido em: v20.1.0 Converte um array de arrays em um array plano. Função:- Aplica-se a qualquer nível de profundidade de arrays aninhados.
- Não altera arrays que já são planos.
flatten
Argumentos
arr— Um array multidimensional.Array(Array(T))
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayFlattenedLength
Introduzido em: v26.9.0 Retorna o número total de elementos de um array multidimensional, como se ele tivesse sido achatado com a funçãoarrayFlatten.
Função:
- Aplica-se a arrays aninhados com qualquer profundidade.
- É equivalente a
lengthpara arrays que já estão achatados. - Considera apenas o aninhamento de
Array. Os elementos são contados no primeiro nível que não é um array. Portanto, os elementos de umMap,Tuple,DynamicouVariantaninhado não são contados individualmente, mesmo que eles próprios contenham arrays.
cardinality no PostgreSQL, enquanto no ClickHouse cardinality é um alias de length e conta apenas os elementos do array mais externo.
Sintaxe
arr— Um array possivelmente multidimensional.Array(T)
UInt64
Exemplos
Array aninhado
Query
Response
Query
Response
Query
Response
Query
Response
arrayFold
Introduzido em: v23.10.0 Aplica uma função lambda a um ou mais arrays de mesmo tamanho e acumula o resultado em um acumulador. Sintaxeλ(x, x1 [, x2, x3, ... xN])— Uma função lambdaλ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN]), em queFé uma operação aplicada aacce aos valores do arrayx, reutilizando o resultado deacc.Função lambdaarr1 [, arr2, arr3, ... arrN]— N arrays sobre os quais a operação será aplicada.Array(T)acc— Valor do acumulador com o mesmo tipo do valor de retorno da função lambda.
acc.
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
arrayIntersect
Introduzido em: v1.1.0 Recebe múltiplos arrays e retorna um array com os elementos presentes em todos os arrays de origem. O resultado contém apenas valores únicos. SintaxearrN— N arrays a partir dos quais o novo array será criado.Array(T).
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayJaccardIndex
Introduzido em: v23.7.0 Retorna o índice de Jaccard de dois arrays. Sintaxearr_x e arr_y Float64
Exemplos
Exemplo de uso
Query
Response
arrayJoin
Introduzido em: v1.1.0 A funçãoarrayJoin recebe uma linha que contém um array e o expande, gerando várias linhas — uma para cada elemento do array.
Isso contrasta com as funções regulares no ClickHouse, que mapeiam valores de entrada para valores de saída dentro da mesma linha,
e com as funções de agregação, que recebem um grupo de linhas e as “comprimem” ou “reduzem” a uma única linha de resumo
(ou a um único valor dentro de uma linha de resumo, se usadas com GROUP BY).
Todos os valores nas colunas são simplesmente copiados, exceto os valores da coluna à qual essa função é aplicada;
eles são substituídos pelo valor correspondente do array.
unnest (desde a versão 26.5) é um alias de arrayJoin que não diferencia maiúsculas de minúsculas na forma de chamada de função (SELECT unnest(arr)). A sintaxe do PostgreSQL para fonte de tabela não é compatível (FROM unnest(...), CROSS JOIN UNNEST(...) e LATERAL). Use a cláusula ARRAY JOIN para essas consultas.
arrayJoin, inclusive por meio de seu alias unnest, não pode ser usado em uma condição JOIN ON avaliada durante o join, pois essa condição deve
preservar o número de linhas. Uma condição que se aplica a apenas um lado e uma chave de igualdade sobre arrayJoin são
extraídas antes do join e não são afetadas. Uma condição ALL INNER JOIN sem disjunções também não é afetada,
pois, nesse caso, a condição é aplicada após o join.
Quando a expansão depende de apenas um lado, mova-a para um ARRAY JOIN em uma subconsulta antes do join; uma condição cujo argumento de arrayJoin lê colunas de ambos os lados precisa ser reestruturada.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
unnest
Argumentos
arr— Um array a ser expandido.Array(T)
arr.
Exemplos
Uso básico
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayLast
Introduzido em: v1.1.0 Retorna o último elemento no array de origem para o qual uma função lambdafunc(x [, y1, y2, ... yN]) retorna true; caso contrário, retorna um valor padrão.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera sobre elementos do array de origem (x) e arrays de condição (y). Função lambda. -source— O array de origem a ser processado.Array(T). -[, cond1, ... , condN]— Opcional. N arrays de condição que fornecem argumentos adicionais à função lambda.Array(T).
func é verdadeiro; caso contrário, retorna o valor padrão de T.
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayLastIndex
Introduzido em: v1.1.0 Retorna o índice do último elemento no array de origem para o qualfunc(x[, y1, y2, ... yN]) retorna true; caso contrário, retorna ‘0’.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
func é verdadeiro; caso contrário, retorna 0 UInt32
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayLastOrNull
Introduzido em: v1.1.0 Retorna o último elemento do array de origem para o qual uma função lambdafunc(x [, y1, y2, ... yN]) retorna true; caso contrário, retorna NULL.
Sintaxe
func(x [, y1, ..., yN])— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y). Função lambda. -source_arr— O array de origem a ser processado.Array(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T).
λ não for verdadeiro; caso contrário, retorna NULL.
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayLevenshteinDistance
Introduzido em: v25.4.0 Calcula a distância de Levenshtein entre dois arrays. SintaxeFloat64
Exemplos
Exemplo de uso
Query
Response
arrayLevenshteinDistanceWeighted
Introduzido em: v25.4.0 Calcula a distância de Levenshtein entre dois arrays com pesos personalizados para cada elemento. O número de elementos do array e o de seus pesos devem corresponder. Sintaxefrom— primeiro array.Array(T). -to— segundo array.Array(T). -from_weights— pesos do primeiro array.Array((U)Int*|Float*)to_weights— pesos do segundo array.Array((U)Int*|Float*)
Float64
Exemplos
Exemplo de uso
Query
Response
arrayMap
Introduzido na versão: v1.1.0 Retorna um array obtido dos arrays originais ao aplicar uma função lambda a cada elemento. Sintaxefunc— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambdaarr— N arrays a serem processados.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayMax
Introduzido em: v21.1.0 Retorna o maior elemento do array de origem. Se uma função lambdafunc for especificada, retorna o maior elemento entre os resultados da lambda.
Sintaxe
func(x[, y1, ..., yN])— Opcional. Uma função lambda aplicada aos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Query
Response
Query
Response
arrayMin
Introduzido em: v21.1.0 Retorna o menor elemento no array de entrada. Se uma função lambdafunc for especificada, retorna o menor elemento dos resultados da função lambda.
Sintaxe
func(x[, y1, ..., yN])— Opcional. Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)cond1_arr, ...— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Query
Response
Query
Response
arrayNormalizedGini
Introduzido em: v25.1.0 Calcula o coeficiente de Gini normalizado. SintaxeTuple(Float64, Float64, Float64)
Exemplos
Exemplo de uso
Query
Response
arrayPartialReverseSort
Introduzido em: v23.2.0 Esta função é igual aarrayReverseSort, mas com o argumento adicional limit, que permite ordenação parcial.
Esta função não é determinística: pode retornar resultados diferentes para os mesmos argumentos.
f(arr[, arr1, ... ,arrN])— A função lambda a ser aplicada aos elementos do arrayx.Função lambdalimit— Valor do índice até o qual a ordenação ocorrerá.(U)Int*arr— Array a ser ordenado.Array(T)arr1, ... ,arrN— N arrays adicionais, casofaceite vários argumentos.Array(T)
[1..limit] são ordenados
em ordem decrescente. Os elementos restantes (limit..N] ficam em ordem não especificada.
Exemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialShuffle
Introduzido em: v23.2.0 Retorna um array do mesmo tamanho que o array original, em que os elementos no intervalo[1..limit] formam um subconjunto aleatório
do array original. O restante em (limit..n] deve conter os elementos que não estão no intervalo [1..limit], em ordem indefinida.
O valor de limit deve estar no intervalo [1..n]. Valores fora desse intervalo equivalem a executar arrayShuffle completo:
Esta função não materializa constantes.O valor de
limit deve estar no intervalo [1..N]. Valores fora desse intervalo equivalem a executar arrayShuffle completo.Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
arr— O array a ser embaralhado.Array(T)seed— Opcional. A semente usada na geração de números aleatórios. Se não for fornecida, uma semente aleatória será usada.(U)Int*limit— Opcional. O número que limita as trocas de elementos, no intervalo[1..N].(U)Int*
Array(T)
Exemplos
no_limit1
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialSort
Introduzido em: v23.2.0 Esta função é igual aarraySort, mas com um argumento adicional, limit, que permite ordenação parcial.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
f(arr[, arr1, ... ,arrN])— A função lambda a ser aplicada aos elementos do arrayx.Função lambdalimit— Valor do índice até o qual a ordenação ocorrerá.(U)Int*arr— Array a ser ordenado.Array(T)arr1, ... ,arrN— N arrays adicionais, quandofaceita vários argumentos.Array(T)
[1..limit] são ordenados
em ordem crescente. Os elementos restantes (limit..N] ficam em ordem não especificada.
Exemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPopBack
Introduzido em: v1.1.0 Remove o último elemento da array. Sintaxearr— O array do qual o último elemento será removido.Array(T)
arr, mas sem o último elemento de arr Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayPopFront
Introduzido em: v1.1.0 Remove o primeiro elemento do array. Sintaxearr— O array do qual o primeiro elemento será removido.Array(T)
arr, mas sem o seu primeiro elemento Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayProduct
Introduzido em: v21.1.0 Retorna o produto dos elementos do array de origem. Se uma função lambdafunc for especificada, retorna o produto dos elementos resultantes da função lambda.
Sintaxe
func(x[, y1, ..., yN])— Opcional. Uma função lambda que opera nos elementos do array de origem (x) e dos arrays condicionais (y).Função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays condicionais que fornecem argumentos adicionais para a função lambda.Array(T)
Float64
Exemplos
Exemplo básico
Query
Response
Query
Response
arrayPushBack
Introduzido em: v1.1.0 Adiciona um item ao final do array. Sintaxearr— O array ao qual o valorxserá adicionado ao final.Array(T)x—- Valor único a ser adicionado ao final do array.
Array(T).
- Somente números podem ser adicionados a um array de números, e somente strings podem ser adicionadas a um array de strings.
- Ao adicionar números, o ClickHouse define automaticamente o tipo de
xde acordo com o tipo de dado do array. - Pode ser
NULL. A função adiciona um elementoNULLa um array, e o tipo dos elementos do array é convertido emNullable.
arr, mas com um valor adicional x no final do array Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayPushFront
Introduzido em: v1.1.0 Adiciona um elemento no início do array. Sintaxearr— O array ao qual o valorxserá adicionado ao final.Array(T). -x—- Valor único a ser adicionado ao início do array.
Array(T).
- Somente números podem ser adicionados a um array de números, e somente strings podem ser adicionadas a um array de strings.
- Ao adicionar números, o ClickHouse define automaticamente o tipo de
xde acordo com o tipo de dado do array. - Pode ser
NULL. A função adiciona um elementoNULLao array, e o tipo dos elementos do array é convertido paraNullable.
arr, mas com um valor adicional x no início do array Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayROCAUC
Introduzido em: v20.4.0 Calcula a área sob a curva ROC (receiver operating characteristic). Uma curva ROC é gerada ao traçar a Taxa de Verdadeiros Positivos (TPR) no eixo y e a Taxa de Falsos Positivos (FPR) no eixo x para todos os limiares. Comscale definido como true, que é o padrão, o valor resultante varia de zero a um, e valores mais altos indicam melhor desempenho do modelo; o resultado é NaN quando a ROC AUC é indefinida, por exemplo, quando não há rótulos positivos ou não há rótulos negativos.
Uma pontuação NaN sempre produz um resultado NaN.
A ROC AUC (também conhecida simplesmente como AUC) é um conceito de aprendizado de máquina.
Para mais detalhes, consulte aqui, aqui e aqui.
Sintaxe
arrayAUC
Argumentos
scores— Pontuações geradas pelo modelo de predição.Array((U)Int*)ouArray(Float*)labels— Rótulos das amostras, geralmente 1 para amostra positiva e 0 para amostra negativa.Array((U)Int*)ouEnumscale— Opcional. Determina se a área normalizada deve ser retornada. Se forfalse, retorna a área sob a curva TP (verdadeiros positivos) x FP (falsos positivos). Valor padrão:true.Boolpartial_offsets—- Um array de quatro inteiros não negativos para calcular uma área parcial sob a curva ROC (equivalente a uma faixa vertical no espaço ROC) em vez da AUC completa. Essa opção é útil para o cálculo distribuído da ROC AUC. O array deve conter os seguintes elementos [
higher_partitions_tp,higher_partitions_fp,total_positives,total_negatives]. Array de Integers não negativos. Opcional.higher_partitions_tp: O número de rótulos positivos nas partições com pontuações mais altas.higher_partitions_fp: O número de rótulos negativos nas partições com pontuações mais altas.total_positives: O número total de amostras positivas em todo o conjunto de dados.total_negatives: O número total de amostras negativas em todo o conjunto de dados.
Quando
arr_partial_offsets é usado, arr_scores e arr_labels devem corresponder apenas a uma partição de todo o conjunto de dados, contendo um intervalo de pontuações.
O conjunto de dados deve ser dividido em partições contíguas, em que cada partição contém o subconjunto de dados cujas pontuações estão dentro de um intervalo específico.
Por exemplo:- Uma partição pode conter todas as pontuações no intervalo [0, 0.5).
- Outra partição pode conter pontuações no intervalo [0.5, 1.0].
NaN se alguma pontuação for NaN e, quando scale for true, também quando a ROC AUC é indefinida porque não há rótulos positivos ou não há rótulos negativos. Float64
Exemplos
Exemplo de uso
Query
Response
arrayRandomSample
Introduzido em: v23.10.0 Retorna um subconjunto comsamples elementos aleatórios de um array de entrada. Se samples exceder o tamanho do array de entrada, o tamanho da amostra será limitado ao tamanho do array, ou seja, todos os elementos do array serão retornados, mas a ordem deles não é garantida. A função pode lidar tanto com arrays simples quanto com arrays aninhados.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
arr— O array de entrada ou array multidimensional do qual serão amostrados os elementos.Array(T)samples— O número de elementos a incluir na amostra aleatória.(U)Int*
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayReduce
Introduzido em: v1.1.0 Aplica uma função de agregação aos elementos de um array e retorna o resultado. O nome da função de agregação é fornecido como uma string entre aspas simples:'max', 'sum'.
Ao usar funções de agregação paramétricas, o parâmetro é indicado após o nome da função, entre parênteses: 'uniqUpTo(6)'.
Sintaxe
agg_f— O nome de uma função de agregação, que deve ser uma constante.Stringarr1[, arr2, ... , arrN]— N arrays correspondentes aos argumentos deagg_f.Array(T)
Query
Response
Query
Response
Query
Response
arrayReduceInRanges
Introduzido em: v20.4.0 Aplica uma função de agregação aos elementos do array nos intervalos especificados e retorna um array contendo o resultado correspondente a cada intervalo. A função retornará o mesmo resultado que várias chamadas dearrayReduce(agg_func, arraySlice(arr1, index, length), ...).
Sintaxe
agg_f— O nome da função de agregação a ser usada.Stringranges— O intervalo no qual agregar. Um array de tuplas(i, r)contendo o índiceia partir do qual começar e o intervalorno qual agregar.Array(T)ouTuple(T)arr1[, arr2, ... ,arrN]— N arrays como argumentos da função de agregação.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayRemove
Introduzido em: v25.11.0 Remove todos os elementos de um array iguais a um determinado valor. NULLs são tratados como iguais. Sintaxearray_remove
Argumentos
arr— Array(T) -elem— T
Array(T)
Exemplos
Exemplo 1
Query
Response
Query
Response
arrayResize
Introduzido em: v1.1.0 Altera o tamanho do array. Sintaxearr— Array a ser redimensionado.Array(T)size— -O novo tamanho do array. Sesizefor menor que o tamanho original do array, o array será truncado à direita. Sesizefor maior que o tamanho inicial do array, o array será estendido à direita com valores deextenderou com valores padrão do tipo de dado dos itens do array.extender— Valor a ser usado para estender o array. Pode serNULL.
size. Array(T)
Exemplos
Exemplo 1
Query
Response
Query
Response
arrayReverse
Introduzido em: v1.1.0 Inverte a ordem dos elementos de um array.A função
reverse(arr) realiza a mesma operação, mas também funciona com outros tipos de dados
além de Arrays.arr— O array a ser revertido.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayReverseFill
Introduzido em: v20.1.0 A funçãoarrayReverseFill processa sequencialmente um array de origem do último
elemento até o primeiro, avaliando uma condição lambda em cada posição com base nos elementos
dos arrays de origem e de condição. Quando a condição resulta em falso na
posição i, a função substitui esse elemento pelo elemento na posição i+1
do estado atual do array. O último elemento é sempre preservado,
independentemente de qualquer condição.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).função lambdasource_arr— O array de origem a ser processado.Array(T)[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Array(T)
Exemplos
Exemplo com um único array
Query
Response
Query
Response
arrayReverseSort
Introduzido na versão: v1.1.0 Ordena os elementos de um array em ordem decrescente. Se uma funçãof for especificada, o array fornecido será ordenado de acordo com o resultado
da função aplicada aos elementos do array, e depois o array ordenado será invertido.
Se f aceitar vários argumentos, a função arrayReverseSort receberá vários arrays aos quais
os argumentos de func corresponderão.
Se o array a ser ordenado contiver -Inf, NULL, NaN ou Inf, eles serão ordenados na seguinte ordem:
-InfInfNaNNULL
arrayReverseSort é uma função de ordem superior.
Sintaxe
f(y1[, y2 ... yN])— A função lambda a ser aplicada aos elementos do arrayx. -arr— Um array a ser classificado.Array(T)-arr1, ..., arrN— Opcional. N arrays adicionais, casofaceite vários argumentos.
x classificado em ordem decrescente se nenhuma função lambda for fornecida; caso contrário,
retorna um array classificado de acordo com a lógica da função lambda fornecida e, em seguida, invertido. Array(T).
Exemplos
Exemplo 1
Query
Response
Query
Response
arrayReverseSplit
Introduzido em: v20.1.0 Divide um array de origem em vários arrays. Quandofunc(x[, y1, ..., yN]) retorna algo diferente de zero, o array será dividido à direita do elemento. O array não será dividido após o último elemento.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Função lambda[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Array(Array(T))
Exemplos
Exemplo de uso
Query
Response
arrayRotateLeft
Introduzido em: v23.8.0 Rotaciona um array para a esquerda pelo número de elementos especificado. Valores negativos den são tratados como uma rotação para a direita pelo valor absoluto de n.
Sintaxe
arr— O array cujos elementos serão rotacionados.Array(T). -n— Número de elementos a rotacionar.(U)Int8/16/32/64.
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayRotateRight
Introduzido em: v23.8.0 Rotaciona um array para a direita em um número especificado de elementos. Valores negativos den equivalem a uma rotação para a esquerda pelo valor absoluto de n.
Sintaxe
arr— O array cujos elementos serão rotacionados.Array(T). -n— Número de elementos a serem rotacionados.(U)Int8/16/32/64.
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
arrayShiftLeft
Introduzido em: v23.8.0 Desloca um array para a esquerda pelo número de elementos especificado. Os novos elementos são preenchidos com o argumento fornecido ou com o valor padrão do tipo de elemento do array. Se o número de elementos for negativo, o array será deslocado para a direita. Sintaxearr— O array cujos elementos devem ser deslocados.Array(T). -n— Número de elementos a serem deslocados.(U)Int8/16/32/64. -default— Opcional. Valor padrão dos novos elementos.
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
arrayShiftRight
Introduzido em: v23.8.0 Desloca um array para a direita pelo número de elementos especificado. Os novos elementos são preenchidos com o argumento fornecido ou com o valor padrão do tipo de elemento do array. Se o número de elementos for negativo, o array é deslocado para a esquerda. Sintaxearr— O array cujos elementos devem ser deslocados.Array(T)n— Número de elementos a serem deslocados.(U)Int8/16/32/64default— Opcional. Valor padrão para os novos elementos.
Array(T)
Exemplos
Exemplo de uso
Query
Response
Query
Response
Query
Response
arrayShingles
Introduzido em: v24.1.0 Gera um array de shingles (semelhantes a ngrams para strings), ou seja, subarrays consecutivos do array de entrada com um comprimento especificado. Sintaxearr— Array a partir do qual será gerado um array de shingles.Array(T)l— O comprimento de cada shingle.(U)Int*
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayShuffle
Introduzido em: v23.2.0 Retorna um array do mesmo tamanho que o array original, com os elementos em ordem embaralhada. Os elementos são reordenados de modo que cada permutação possível tenha a mesma probabilidade de ocorrer.Esta função não materializa constantes.
Esta função é não determinística: pode retornar resultados diferentes para os mesmos argumentos.
arr— O array que será embaralhado.Array(T)seed (optional)— Opcional. A semente usada na geração de números aleatórios. Se não for fornecida, uma semente aleatória será usada.(U)Int*
Array(T)
Exemplos
Exemplo sem seed (resultados instáveis)
Query
Response
Query
Response
arraySimilarity
Introduzido em: v25.4.0 Calcula a similaridade entre dois arrays de0 a 1 com base na distância de Levenshtein ponderada.
Sintaxe
from— primeiro arrayArray(T)to— segundo arrayArray(T)from_weights— pesos do primeiro array.Array((U)Int*|Float*)to_weights— pesos do segundo array.Array((U)Int*|Float*)
0 e 1 entre os dois arrays, com base na distância de Levenshtein ponderada Float64
Exemplos
Exemplo de uso
Query
Response
arraySlice
Introduzido em: v1.1.0 Retorna uma parte do array, incluindo elementosNULL.
O primeiro argumento também pode ser um QBit: o resultado é um QBit nas dimensões selecionadas (uma projeção para um subconjunto de dimensões). Nesse caso, offset e length devem ser constantes, pois a dimensão de um QBit faz parte de seu tipo, e a fatia deve selecionar pelo menos uma dimensão. Uma fatia alinhada aos limites dos grupos de stride do QBit mantém o stride e reutiliza os fluxos de planos de bits armazenados sem cópia.
Sintaxe
arr— Array a ser fatiado.Array(T)ouQBitoffset— Deslocamento a partir da borda do array. Um valor positivo indica um deslocamento à esquerda, e um valor negativo indica um recuo à direita. A numeração dos elementos do array começa em1.(U)Int*length— O comprimento da fatia desejada. Se você especificar um valor negativo, a função retornará uma fatia aberta[offset, array_length - length]. Se você omitir o valor, a função retornará a fatia[offset, the_end_of_array].(U)Int*
length elementos a partir do offset especificado Array(T)
Exemplos
Exemplo de uso
Query
Response
arraySort
Introduzido em: v1.1.0 Ordena os elementos do array fornecido em ordem crescente. Se uma função lambdaf for especificada, a ordem de classificação será determinada pelo resultado da
função lambda aplicada a cada elemento do array.
Se a função lambda aceitar vários argumentos, a função arraySort receberá vários
arrays aos quais os argumentos de f corresponderão.
Se o array a ser ordenado contiver -Inf, NULL, NaN ou Inf, eles serão ordenados na seguinte ordem:
-InfInfNaNNULL
arraySort é uma função de ordem superior.
Sintaxe
f(y1[, y2 ... yN])— A função lambda a ser aplicada aos elementos do arrayx. -arr— Um array a ser ordenado.Array(T)-arr1, ..., arrN— Opcional. N arrays adicionais, casofaceite vários argumentos.
arr ordenado em ordem crescente se nenhuma função lambda for fornecida; caso contrário,
retorna um array ordenado de acordo com a lógica da função lambda fornecida. Array(T).
Exemplos
Exemplo 1
Query
Response
Query
Response
Query
Response
arraySplit
Introduzido em: v20.1.0 Divide um array de origem em vários arrays. Quandofunc(x [, y1, ..., yN]) retorna algo diferente de zero, o array é dividido antes do elemento. O array não será dividido antes do primeiro elemento.
Sintaxe
func(x[, y1, ..., yN])— Uma função lambda que opera sobre os elementos do array de origem (x) e dos arrays de condição (y).Função lambda. -source_arr— O array de origem a ser divididoArray(T). -[, cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T).
Array(Array(T))
Exemplos
Exemplo de uso
Query
Response
arraySum
Introduzido em: v21.1.0 Retorna a soma dos elementos do array de origem. Se uma função lambdafunc for especificada, retorna a soma dos elementos dos resultados da função lambda.
Sintaxe
func(x[, y1, ..., yN])— Opcional. Uma função lambda que opera nos elementos do array de origem (x) e dos arrays de condição (y).Função lambdasource_arr— O array de origem a ser processado.Array(T), cond1_arr, ... , condN_arr]— Opcional. N arrays de condição que fornecem argumentos adicionais para a função lambda.Array(T)
Query
Response
Query
Response
arraySymmetricDifference
Introduzido em: v25.4.0 Aceita vários arrays e retorna um array com elementos que não estão presentes em todos os arrays de origem. O resultado contém apenas valores únicos.A diferença simétrica de mais de dois conjuntos é definida matematicamente
como o conjunto de todos os elementos de entrada que ocorrem em um número ímpar de conjuntos de entrada.
Em contraste, a função
arraySymmetricDifference simplesmente retorna o conjunto de elementos de entrada que não ocorrem em todos os conjuntos de entrada.arrN— N arrays a partir dos quais o novo array é criado.Array(T).
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayTopK
Introduzido em: v26.6.0 Retorna um array com os K maiores elementos do array de entrada, em ordem decrescente. Se umafunção lambda f for especificada, os elementos serão comparados com base no resultado de f aplicada a cada elemento.
Se f aceitar vários argumentos, arrays adicionais serão passados para arrayTopK, e seus elementos
corresponderão aos argumentos de f.
Os valores NULL são ignorados e não aparecem no resultado. O tamanho do resultado é, no máximo, K
e pode ser menor quando o array de entrada contém menos elementos não nulos do que K.
O tipo de elemento do resultado é a versão não Nullable do tipo de elemento de entrada.
arrayTopK é uma função de ordem superior.
Veja também arrayBottomK, que retorna os K menores elementos.
Sintaxe
f(arr[, arr1, ... ,arrN])— Opcional. Uma função lambda para calcular a chave de ordenação de cada elemento.Função lambdaK— O número de maiores elementos a retornar.(U)Int8/16/32/64arr— Um array.Array(T)arr1, ... ,arrN— N arrays adicionais, casofaceite vários argumentos.Array(T)
K elementos de arr com os maiores valores (ou os maiores resultados da função lambda), em ordem decrescente.
Nulls são ignorados. O array retornado tem tipo de elemento T mesmo quando a entrada é do tipo Nullable(T).
Exemplos
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayTranspose
Introduzido em: v26.4.0 Transpõe um array bidimensional. Todos os arrays internos devem ter o mesmo comprimento. Sintaxearr— Um array bidimensional a ser transposto. Todos os arrays internos devem ter o mesmo comprimento.Array(Array(T))
[i][j] do resultado é igual ao elemento [j][i] do array de entrada. Array(Array(T))
Exemplos
Matriz quadrada
Query
Response
Query
Response
Query
Response
arrayUnion
Introduzido em: v24.10.0 Recebe vários arrays e retorna um array que contém todos os elementos presentes em qualquer um dos arrays de origem. O resultado contém apenas valores únicos. SintaxearrN— N arrays usados para criar o novo array.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayUniq
Introduzido em: v1.1.0 Quando é passado um único argumento, conta o número de elementos únicos no array. Quando são passados vários argumentos, conta o número de tuplas únicas formadas pelos elementos nas posições correspondentes de vários arrays. Por exemplo,SELECT arrayUniq([1,2], [3,4], [5,6]) formará as seguintes tuplas:
- Posição 1: (1,3,5)
- Posição 2: (2,4,6)
2.
Todos os arrays passados devem ter o mesmo comprimento.
Sintaxe
arr1— Array em que se conta o número de elementos únicos.Array(T)[, arr2, ..., arrN]— Opcional. Arrays adicionais usadas para contar o número de tuplas únicas de elementos nas posições correspondentes em vários arrays.Array(T)
UInt32
Exemplos
Argumento único
Query
Response
Query
Response
arrayWithConstant
Introduzido em: v20.1.0 Cria um array de tamanholength preenchido com a constante x.
Sintaxe
length— Número de elementos do array.(U)Int*x— O valor dosNelementos do array, de qualquer tipo.
N elementos com valor x. Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayZip
Introduzido em: v20.1.0 Combina vários arrays em um único array. O array resultante contém os elementos correspondentes dos arrays de origem, agrupados em tuplas na ordem em que os argumentos são listados. Sintaxearr1, arr2, ... , arrN— N arrays a serem combinados em um único array.Array(T)
Array(T)
Exemplos
Exemplo de uso
Query
Response
arrayZipUnaligned
Introduzido em: v20.1.0 Combina vários arrays em um único array, permitindo arrays não alinhados (arrays com comprimentos diferentes). O array resultante contém os elementos correspondentes dos arrays de origem agrupados em tuplas, na ordem em que os argumentos são listados. Sintaxearr1, arr2, ..., arrN— N arrays a serem combinados em um único array.Array(T)
Array(T) ou Tuple(T1, T2, ...)
Exemplos
Exemplo de uso
Query
Response
countEqual
Introduzido em: v1.1.0 Retorna o número de elementos do array iguais ax. Equivalente a arrayCount(elem -> elem = x, arr).
Elementos NULL são tratados como valores distintos.
Sintaxe
arr— Array em que será feita a busca.Array(T)x— Valor no array a ser contado. Qualquer tipo.
x UInt64
Exemplos
Exemplo de uso
Query
Response
empty
Introduzido em: v1.1.0 Verifica se o array de entrada está vazio. Um array é considerado vazio se não contiver nenhum elemento.Pode ser otimizada ao habilitar a
configuração optimize_functions_to_subcolumns. Com optimize_functions_to_subcolumns = 1, a função lê apenas a subcoluna size0, em vez de ler e processar toda a coluna de array. A consulta SELECT empty(arr) FROM TABLE; é transformada em SELECT arr.size0 = 0 FROM TABLE;.arr— Array de entrada.Array(T)
1 para um array vazio ou 0 para um array não vazio UInt8
Exemplos
Exemplo de uso
Query
Response
emptyArrayDate
Introduzido em: v1.1.0 Retorna um array de Date vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayDateTime
Introduzido em: v1.1.0 Retorna um array vazio de DateTime Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayFloat32
Introduzido em: v1.1.0 Retorna um array Float32 vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayFloat64
Introduzido em: v1.1.0 Retorna um array Float64 vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayInt16
Introduzido em: v1.1.0 Retorna um array(Int16) vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayInt32
Introduzido em: v1.1.0 Retorna um array Int32 vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayInt64
Introduzido em: v1.1.0 Retorna um array Int64 vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayInt8
Introduzido em: v1.1.0 Retorna um array(Int8) vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayString
Introduzido em: v1.1.0 Retorna um array vazio de String Sintaxe- Nenhum.
String. Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayToSingle
Introduzido em: v1.1.0 Aceita um array vazio e retorna um array com um único elemento, igual ao valor padrão. Sintaxearr— Um array vazio.Array(T)
Array(T)
Exemplos
Exemplo básico
Query
Response
emptyArrayUInt16
Introduzido em: v1.1.0 Retorna um array vazio de UInt16 Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayUInt32
Introduzido em: v1.1.0 Retorna um array vazio de UInt32 Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayUInt64
Introduzido em: v1.1.0 Retorna um array vazio de UInt64 Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
emptyArrayUInt8
Introduzido em: v1.1.0 Retorna um array UInt8 vazio Sintaxe- Nenhum.
Array(T)
Exemplos
Exemplo de uso
Query
Response
has
Introduzido em: v1.1.0 Retorna se o array contém o elemento especificado, se o map contém a chave especificada ou se o objeto JSON contém o caminho especificado. Para JSON, há suporte a caminhos aninhados usando notação de ponto (por exemplo, ‘a.b.c’). Quando o primeiro argumento é um array constante e o segundo argumento é uma coluna ou expressão,has(constant_array, column) se comporta como column IN (constant_array) e pode usar a chave primária e índices de data-skipping para otimização. Por exemplo, has([1, 10, 100], id) pode usar o índice da chave primária se id fizer parte da PRIMARY KEY.
Essa otimização também se aplica quando a coluna é encapsulada em funções monotônicas (por exemplo, has([...], toDate(ts))).
Sintaxe
haystack— O array, map ou JSON de origem.ArrayouMapouJSONneedle— O valor a ser procurado (elemento no array, chave no map ou string de caminho no JSON).
1 se o haystack contiver o needle especificado; caso contrário, 0. UInt8
Exemplos
Uso básico de Array
Query
Response
Query
Response
Query
Response
Query
Response
hasAll
Introduzido em: v1.1.0 Verifica se um array é subconjunto de outro array.- Um array vazio é subconjunto de qualquer array.
NULLé processado como um valor.- A ordem dos valores em ambos os arrays não importa.
set— Array de qualquer tipo com um conjunto de elementos.Array(T)subset— Array de qualquer tipo que compartilha um supertipo comum comset, contendo elementos que devem ser verificados para determinar se são um subconjunto deset.Array(T)
1, sesetcontiver todos os elementos desubset.0, caso contrário.
NO_COMMON_TYPE se os elementos de set e subset não compartilharem um supertipo comum.
Exemplos
Arrays vazios
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAny
Introduzido em: v1.1.0 Verifica se dois arrays têm algum elemento em comum.Nullé processado como um valor.- A ordem dos valores em ambos os arrays não importa.
arr_x— Array de qualquer tipo com um conjunto de elementos.Array(T)arr_y— Array de qualquer tipo que tenha um supertipo comum com o arrayarr_x.Array(T)
1, searr_xearr_ytiverem pelo menos um elemento em comum.0, caso contrário.
NO_COMMON_TYPE se algum dos elementos dos dois arrays não tiver um supertipo comum.
Exemplos
Um array está vazio
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasSubstr
Introduzido em: v20.6.0 Verifica se todos os elementos de array2 aparecem em array1 exatamente na mesma ordem. Portanto, a função retornará1 se, e somente se, array1 = prefixo + array2 + sufixo.
Em outras palavras, a função verifica se todos os elementos de array2 estão contidos em array1, como na função hasAll.
Além disso, verifica se os elementos aparecem na mesma ordem em array1 e array2.
- A função retornará
1se array2 estiver vazio. NULLé processado como um valor. Em outras palavras,hasSubstr([1, 2, NULL, 3, 4], [2,3])retornará0. No entanto,hasSubstr([1, 2, NULL, 3, 4], [2,NULL,3])retornará1- A ordem dos valores em ambos os arrays importa.
NO_COMMON_TYPE se algum elemento dos dois arrays não tiver um supertipo comum.
Sintaxe
arr1— Array de qualquer tipo com um conjunto de elementos.Array(T)arr2— Array de qualquer tipo com um conjunto de elementos.Array(T)
1 se o array arr1 contiver o array arr2. Caso contrário, retorna 0. UInt8
Exemplos
Ambos os arrays estão vazios
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
indexOf
Introduzido em: v1.1.0 Retorna o índice do primeiro elemento com valor ‘x’ (a partir de 1), se ele estiver no array. Se o array não contiver o valor pesquisado, a função retorna0.
Elementos definidos como NULL são tratados como valores normais.
Elementos NaN não seguem a regra de NULL acima.
Uma comparação escalar entre dois valores NaN (NaN = NaN) é 0, mas indexOf ainda pode reportar um elemento NaN como encontrado.
Esse comportamento é um detalhe de implementação. Não dependa de um comportamento específico.
Para encontrar um, teste-o: arrayFirstIndex(x -> isNaN(x), arr) retorna sua posição; arrayExists(x -> isNaN(x), arr), uma flag.
Sintaxe
arr— Um array no qual buscarx.Array(T)x— Valor do primeiro elemento emarrcorrespondente axcujo índice deve ser retornado.UInt64
x em arr, se existir. Caso contrário, retorna 0. UInt64
Exemplos
Exemplo básico
Query
Response
Query
Response
indexOfAssumeSorted
Introduzido em: v24.12.0 Retorna o índice do primeiro elemento com valor ‘x’ (a partir de1) se ele estiver no array.
Se o array não contiver o valor pesquisado, a função retornará 0.
Ao contrário da função
indexOf, esta função pressupõe que o array está ordenado em
ordem crescente. Se o array não estiver ordenado, os resultados serão indefinidos.arr— Um array ordenado no qual será feita a busca.Array(T)x— Valor do primeiro elemento correspondente emarrordenado cujo índice deve ser retornado.UInt64
x em arr, se ela existir. Caso contrário, retorna 0. UInt64
Exemplos
Exemplo básico
Query
Response
length
Introduzido em: v1.1.0 Calcula o comprimento de uma string ou array.- Para argumentos String ou FixedString: calcula o número de bytes da string.
- Para argumentos Array: calcula o número de elementos do array.
- Para argumentos QBit: calcula a dimensão do vetor.
- Se aplicada a um argumento FixedString ou QBit, a função é uma expressão constante.
OCTET_LENGTH, CARDINALITY
Argumentos
x— Valor para o qual se calcula o número de bytes (para String/FixedString), de elementos (para Array) ou a dimensão (para QBit).StringouFixedStringouArray(T)ouQBit
x, o número de elementos no array x ou a dimensão do QBit x UInt64
Exemplos
Exemplo com String
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
notEmpty
Introduzido em: v1.1.0 Verifica se o array de entrada não está vazio. Um array é considerado não vazio se contiver pelo menos um elemento.Pode ser otimizada ativando a configuração
optimize_functions_to_subcolumns. Com optimize_functions_to_subcolumns = 1, a função lê apenas a subcoluna size0, em vez de ler e processar toda a coluna do tipo array. A consulta SELECT notEmpty(arr) FROM table é transformada em SELECT arr.size0 != 0 FROM TABLE.arr— Array de entrada.Array(T)
1 para um array não vazio ou 0 para um array vazio UInt8
Exemplos
Exemplo de uso
Query
Response
notHas
Introduzido em: v26.8.0 Retorna se o array não contém o elemento especificado, se o map não contém a chave especificada ou se o objeto JSON não contém o caminho especificado. É a negação dehas.
Sintaxe
haystack— O array, map ou JSON de origem.Array,MapouJSONneedle— O valor a ser buscado (elemento no array, chave no map ou string de caminho no JSON).
1 se o haystack não contiver o needle especificado; caso contrário, retorna 0. UInt8
Exemplos
Uso básico de Array
Query
Response
Query
Response
Query
Response
Query
Response
randomHadamardTransform
Introduzido em: v26.7.0 Aplica uma transformada de Hadamard aleatorizada a um vetor de ponto flutuante:y = (1/sqrt(k)) * (H * D * x), em que
D é uma matriz diagonal de sinais determinísticos +/-1 escolhidos por seed, e H é a transformada
de Walsh-Hadamard.
A transformada é uma rotação ortogonal que preserva a norma, distribuindo a energia de um vetor uniformemente
entre as coordenadas, de modo que a distribuição por coordenada se torne aproximadamente Gaussiana e
independente dos dados. Ela é útil como etapa de pré-processamento antes da quantização escalar e — quando
truncada — como uma projeção aleatória de Johnson-Lindenstrauss / Hadamard aleatorizada subamostrada (SRHT).
A transformada completa (sem truncamento) mantém o comprimento da entrada. Ela é exata para os seguintes comprimentos:
- uma potência de dois (uma transformada rápida simples de Walsh-Hadamard);
2^k * mcommem{12, 20}(ordens que têm uma matriz de Hadamard+/-1, por exemplo768 = 64 * 12,1536 = 128 * 12,3072 = 256 * 12,2560 = 128 * 20), aplicada como a transformada de Kronecker exataH_(2^k) (x) H_m(sem multiplicações em ponto flutuante);2^k * mcom qualquer outromímpar até64(ordens que não têm uma matriz de Hadamard+/-1— elas existem apenas para ordens1,2e múltiplos de4), aplicada como a transformada de Kronecker exataH_(2^k) (x) C_m, em queC_mé uma matriz ortogonal real da Transformada Discreta de Hartley. Isso cobre as famílias de embeddings restantes, como3584 = 512 * 7,1152 = 128 * 9,1408 = 128 * 11.
64 não tem forma exata e exigiria
preenchimento com zeros até uma potência de dois maior; ela é rejeitada com uma exceção em vez de
retornar silenciosamente um vetor mais longo. Use um comprimento compatível ou passe output_dims para calcular uma
projeção truncada de um comprimento arbitrário (veja abaixo).
O resultado tem o mesmo tipo de elemento da entrada; um array de entrada vazio retorna um array vazio
(output_dims não se aplica a ele).
seed(opcional, padrão0): seleciona o padrão de sinais; a mesma seed sempre produz a mesma transformada.output_dims(opcional, com padrão igual ao comprimento da transformada): mantém apenas as primeirasoutput_dimscoordenadas, convertendo a transformada em uma projeção aleatória que aceita qualquer comprimento. O fator de escala1/sqrt(output_dims)faz com que o resultado preserve a norma na transformada completa e preserve a norma em expectativa quando truncado. Ele não deve exceder o comprimento da transformada. Como um prefixo truncado do fator de Transformada Discreta de HartleyC_mnão tem a alavancagem uniforme de uma matriz de Hadamard+/-1, umoutput_dimstruncado em um comprimento da família Hartley (ou em qualquer comprimento sem fator exato) usa a transformada com preenchimento com zeros até uma potência de dois, que de fato preserva essa propriedade.
vector— Vetor a ser transformado.Array(BFloat16)ouArray(Float32)ouArray(Float64)seed— Opcional. Semente usada para os sinais determinísticos de +/-1 (padrão: 0).UInt*output_dims— Opcional. Trunca o resultado para este número de coordenadas iniciais (padrão: o comprimento total da transformada, que é igual ao comprimento da entrada para qualquer dimensão compatível). Passar output_dims também habilita a transformada para comprimentos que não têm uma forma exata de transformada completa.UInt*
Array(BFloat16) ou Array(Float32) ou Array(Float64)
Exemplos
Transformada completa para um comprimento que é potência de dois
Query
Response
Query
Response
Query
Response
2^k * m mantém o comprimento da entrada (sem padding)
Query
Response
range
Introduzido em: v1.1.0 Retorna um array de números destart até end - 1, com passo step.
Os tipos compatíveis são:
-
UInt8/16/32/64 -
Int8/16/32/64] -
Todos os argumentos
start,endestepdevem ser de um dos tipos compatíveis acima. Os elementos do array retornado serão de um supertipo dos argumentos. -
É lançada uma exceção se a função retornar um array com comprimento total maior que o número de elementos especificado pela configuração
function_range_max_elements_in_block. -
Retorna
NULLse algum argumento tiver o tipo Nullable(nothing). É lançada uma exceção se algum argumento tiver o valorNULL(tipo Nullable(T)).
start— Opcional. O primeiro elemento do array. Obrigatório sestepfor usado. Valor padrão:0. -end— Obrigatório. O número-limite antes do qual o array é construído. -step— Opcional. Determina o passo entre cada elemento do array. Valor padrão:1.
start a end - 1, com passo step. Array(T)
Exemplos
Exemplo de uso
Query
Response
replicate
Introduzido em: v1.1.0 Cria um array com um único valor. Sintaxearr, preenchido com o valor x. Array(T)
Exemplos
Exemplo de uso
Query
Response
reverse
Introduzido em: v1.1.0 Inverte a ordem dos elementos da array de entrada ou dos caracteres da string de entrada. SintaxeQuery
Response
Query
Response