Skip to main content

uniq

Introduzido em: v1.1.0 Calcula o número aproximado de valores distintos do argumento. A função usa um algoritmo de amostragem adaptativa. Para o estado de cálculo, a função usa uma amostra de valores de hash de elementos de até 65536. Esse algoritmo é muito preciso e muito eficiente no uso da CPU. Quando a consulta contém várias dessas funções, usar uniq é quase tão rápido quanto usar outras funções de agregação.
Esta função calcula um hash para todos os parâmetros da agregação e depois o usa nos cálculos. Ela usa um algoritmo de amostragem adaptativa. Para o estado de cálculo, a função usa uma amostra de valores de hash de elementos de até 65536. Esse algoritmo é muito preciso e muito eficiente no uso da CPU. Quando a consulta contém várias dessas funções, usar uniq é quase tão rápido quanto usar outras funções de agregação.A amostra mantém hashes de 32 bits, que não conseguem distinguir mais do que alguns bilhões de valores; por isso, também é mantida uma pequena amostra, bastante esparsa, de hashes completos de 64 bits (cerca de um hash a cada 262144 valores, limitada a 16384 hashes), e a estimativa passa a usá-la a partir de cerca de dois bilhões. Isso mantém a estimativa precisa (com erro de cerca de 1%) para cardinalidades de centenas de bilhões ou mais, casos em que servidores anteriores à versão 26.8 retornavam valores sem sentido (issue #6078). Estados gravados por esses servidores não contêm a amostra de 64 bits; portanto, ao mesclá-los, os valores mesclados provenientes desses estados mantêm apenas a precisão de 32 bits.
Recomendamos usar esta função em vez de outras variantes em quase todos os cenários.
Sintaxe
Argumentos Valor retornado Retorna um número do tipo UInt64 que representa o número aproximado de valores distintos. UInt64 Exemplos Exemplo de uso
Query
Response
Vários argumentos
Query
Response
Veja também