Pular para o conteúdo principal

count

Introduzido em: v1.1.0 Conta o número de linhas ou de valores não NULL. O ClickHouse oferece suporte às seguintes sintaxes para count:
  • count(expr) ou COUNT(DISTINCT expr).
  • count() ou COUNT(*). A sintaxe count() é específica do ClickHouse.
Detalhes O ClickHouse oferece suporte à sintaxe COUNT(DISTINCT ...). O comportamento dessa construção depende da configuração count_distinct_implementation. Ela define qual das funções uniq* é usada para realizar a operação. O padrão é a função uniqExact. A consulta SELECT count() FROM table é otimizada por padrão com base nos metadados do MergeTree. Se você precisar usar segurança em nível de linha, desative essa otimização usando a configuração optimize_trivial_count_query. No entanto, a consulta SELECT count(nullable_column) FROM table pode ser otimizada ativando a configuração optimize_functions_to_subcolumns. Com optimize_functions_to_subcolumns = 1, a função lê apenas a subcoluna null, em vez de ler e processar todos os dados da coluna. A consulta SELECT count(n) FROM table é transformada em SELECT sum(NOT n.null) FROM table.
Melhorando o desempenho de COUNT(DISTINCT expr)Se a sua consulta COUNT(DISTINCT expr) estiver lenta, considere adicionar uma cláusula GROUP BY, pois isso melhora a paralelização. Você também pode usar uma projection para criar um índice na coluna de destino usada com COUNT(DISTINCT target_col).
Sintaxe
count([expr])
Argumentos
  • expr — Opcional. Uma expressão. A função conta quantas vezes essa expressão retornou um valor não nulo. Expressão
Valor retornado Retorna a contagem de linhas se a função for chamada sem parâmetros; caso contrário, retorna a contagem de quantas vezes a expressão fornecida retornou um valor não nulo. UInt64 Exemplos Contagem básica de linhas
Query
SELECT count() FROM t
Response
┌─count()─┐
│       5 │
└─────────┘
Exemplo de COUNT(DISTINCT)
Query
-- Este exemplo mostra que `count(DISTINCT num)` é executado pela função `uniqExact` de acordo com o valor da configuração `count_distinct_implementation`.
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation';
SELECT count(DISTINCT num) FROM t
Response
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─uniqExact(num)─┐
│              3 │
└────────────────┘
Última modificação em 10 de junho de 2026