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)ouCOUNT(DISTINCT expr).count()ouCOUNT(*). A sintaxecount()é 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.
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
CREATE TABLE t (num UInt8) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (2), (3);
SELECT count() FROM t┌─count()─┐
│ 5 │
└─────────┘Exemplo de COUNT(DISTINCT)
-- This example shows that `count(DISTINCT num)` is performed by the `uniqExact` function according to the `count_distinct_implementation` setting value.
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation';
SELECT count(DISTINCT num) FROM t┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─countDistinct(num)─┐
│ 3 │
└────────────────────┘