Skip to main content

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.
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.
Recomendamos usar esta función en lugar de otras variantes en casi todos los casos.
Sintaxis
Argumentos Valor devuelto Devuelve un número de tipo UInt64 que representa el número aproximado de valores distintos. UInt64 Ejemplos Ejemplo de uso
Query
Response
Varios argumentos
Query
Response
Ver también