Saltar al contenido principal

Descripción

El combinador Array se puede aplicar a la función uniq para calcular el número aproximado de elementos únicos en el conjunto de todos los arrays, mediante la función de combinador de agregado uniqArray. La función uniqArray es útil cuando necesitas contar elementos únicos en varios arrays de un conjunto de datos. Equivale a usar uniq(arrayJoin()), donde arrayJoin primero aplana los arrays y luego uniq cuenta los elementos únicos.

Ejemplo de uso

En este ejemplo, usaremos un conjunto de datos de ejemplo sobre los intereses de los usuarios en distintas categorías para mostrar cómo funciona uniqArray. Lo compararemos con uniq(arrayJoin()) para mostrar la diferencia al contar elementos únicos.
Query
CREATE TABLE user_interests
(
    user_id UInt32,
    interests Array(String)
) ENGINE = Memory;

INSERT INTO user_interests VALUES
    (1, ['reading', 'gaming', 'music']),
    (2, ['gaming', 'sports', 'music']),
    (3, ['reading', 'cooking']);

SELECT 
    uniqArray(interests) AS unique_interests_total,
    uniq(arrayJoin(interests)) AS unique_interests_arrayJoin
FROM user_interests;
La función uniqArray cuenta los elementos únicos de todas las arrays combinadas, de forma similar a uniq(arrayJoin()). En este ejemplo:
  • uniqArray devuelve 5 porque hay 5 intereses únicos entre todos los usuarios: ‘reading’, ‘gaming’, ‘music’, ‘sports’, ‘cooking’
  • uniq(arrayJoin()) también devuelve 5, lo que demuestra que ambas funciones cuentan los elementos únicos de todas las arrays
Response
   ┌─unique_interests_total─┬─unique_interests_arrayJoin─┐
1. │                      5 │                          5 │
   └────────────────────────┴────────────────────────────┘

Véase también

Última modificación el 10 de junio de 2026