uniq
Introducido en: v1.1.0
Calcula el número aproximado de valores distintos del argumento.
La función utiliza un algoritmo de muestreo adaptativo. Para el estado de cálculo, la función usa una muestra de hasta 65536 valores hash de los elementos. Este algoritmo es muy preciso y muy eficiente para la CPU. Cuando la consulta contiene varias de estas funciones, usar uniq es casi tan rápido como usar otras funciones de agregación.
Detalles de implementación
Esta función calcula un hash para todos los parámetros de la agregación y luego lo usa en los cálculos.
Utiliza un algoritmo de muestreo adaptativo.
Para el estado de cálculo, la función usa una muestra de hasta 65536 valores hash de los elementos.
Este algoritmo es muy preciso y muy eficiente para la CPU.
Cuando la consulta contiene varias de estas funciones, usar uniq es casi tan rápido como usar otras funciones de agregación.
Sintaxis
uniq(x[, ...])Argumentos
x— La función acepta un número variable de parámetros.Tuple(T)oArray(T)oDateoDateTimeoStringo(U)Int*oFloat*oDecimal
Valor devuelto
Devuelve un número de tipo UInt64 que representa el número aproximado de valores distintos. UInt64
Ejemplos
Ejemplo de uso
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;┌─unique_categories─┐
│ 3 │
└───────────────────┘Varios argumentos
SELECT uniq(category, value) as unique_combinations
FROM example_table;┌─unique_combinations─┐
│ 6 │
└─────────────────────┘Ver también