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
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.La muestra conserva hash de 32 bits, que no pueden distinguir más de unos pocos miles de millones de valores, por lo que, además,
se mantiene una pequeña muestra muy reducida de hash completos de 64 bits (aproximadamente un hash por cada 262144 valores,
con un límite de 16384 hash), y la estimación pasa a basarse en ella a partir de unos dos mil millones. Así, la estimación sigue siendo
precisa (con un margen de aproximadamente el 1 %) para cardinalidades de cientos de miles de millones o más, casos en los que los servidores anteriores
a la versión 26.8 devolvían valores sin sentido (issue #6078). Los estados escritos por esos servidores no incluyen la muestra de 64 bits,
por lo que, al fusionarlos, solo se conserva la precisión de 32 bits para los valores incorporados mediante la fusión.x— La función acepta un número variable de parámetros.Tuple(T)oArray(T)oDateoDateTimeoStringo(U)Int*oFloat*oDecimal
UInt64
Ejemplos
Ejemplo de uso
Query
Response
Query
Response