Saltar al contenido principal

count

Introducido en: v1.1.0 Cuenta el número de filas o de valores distintos de NULL. ClickHouse admite las siguientes sintaxis para count:
  • count(expr) o COUNT(DISTINCT expr).
  • count() o COUNT(*). La sintaxis count() es específica de ClickHouse.
Detalles ClickHouse admite la sintaxis COUNT(DISTINCT ...). El comportamiento de esta construcción depende de la configuración count_distinct_implementation. Esta define cuál de las funciones uniq* se utiliza para realizar la operación. El valor predeterminado es la función uniqExact. La consulta SELECT count() FROM table se optimiza de forma predeterminada usando metadatos de MergeTree. Si necesita usar seguridad a nivel de fila, desactive esta optimización mediante la configuración optimize_trivial_count_query. Sin embargo, la consulta SELECT count(nullable_column) FROM table puede optimizarse habilitando la configuración optimize_functions_to_subcolumns. Con optimize_functions_to_subcolumns = 1, la función lee solo la subcolumna null en lugar de leer y procesar los datos completos de la columna. La consulta SELECT count(n) FROM table se transforma en SELECT sum(NOT n.null) FROM table.
Mejorar el rendimiento de COUNT(DISTINCT expr)Si su consulta COUNT(DISTINCT expr) es lenta, considere agregar una cláusula GROUP BY, ya que esto mejora la paralelización. También puede usar una proyección para crear un índice sobre la columna de destino usada con COUNT(DISTINCT target_col).
Sintaxis
count([expr])
Argumentos
  • expr — Opcional. Una expresión. La función cuenta cuántas veces esta expresión devolvió un valor distinto de NULL. Expresión
Valor devuelto Devuelve el recuento de filas si la función se llama sin parámetros; en caso contrario, devuelve el número de veces que la expresión proporcionada devolvió un valor distinto de NULL. UInt64 Ejemplos Recuento básico de filas
Query
SELECT count() FROM t
Response
┌─count()─┐
│       5 │
└─────────┘
Ejemplo de COUNT(DISTINCT)
Query
-- Este ejemplo muestra que `count(DISTINCT num)` es ejecutado por la función `uniqExact` según el valor del parámetro `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 modificación el 10 de junio de 2026