Pular para o conteúdo principal

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.
Recomendamos usar esta função em vez de outras variantes em quase todos os cenários.
Sintaxe
uniq(x[, ...])
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
CREATE TABLE example_table (
    id UInt32,
    category String,
    value Float64
) ENGINE = Memory;

INSERT INTO example_table VALUES
(1, 'A', 10.5),
(2, 'B', 20.3),
(3, 'A', 15.7),
(4, 'C', 8.9),
(5, 'B', 12.1),
(6, 'A', 18.4);

SELECT uniq(category) as unique_categories
FROM example_table;
Response
┌─unique_categories─┐
│                 3 │
└───────────────────┘
Vários argumentos
Query
SELECT uniq(category, value) as unique_combinations
FROM example_table;
Response
┌─unique_combinations─┐
│                   6 │
└─────────────────────┘
Veja também
Última modificação em 10 de junho de 2026