Compartir a través de


bitmap_or_agg (función de agregado)

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 13.3 LTS y versiones posteriores

Devuelve el bitwise OR de todos los BINARY valores de entrada del grupo.

La función se usa normalmente para contar el número de números enteros distintos en combinación con las funciones bitmap_bucket_number(), bitmap_count(), bitmap_bit_position() y bitmap_construct_agg().

Para agregar mapas de bits en forma de valores numéricos enteros, use la función de agregado bit_or(). Para agregar posiciones de bits en un mapa de bits de BINARY, use bitmap_construct_agg().

Sintaxis

bitmap_or_agg(expr) [FILTER ( WHERE cond ) ]

Esta función también se puede invocar como una función de ventana mediante la cláusula OVER.

Argumentos

  • expr: Un BINARY de longitud <= 4096 que representa un mapa de bits. Azure Databricks trunca los valores más largos en 4096.
  • cond: una expresión booleana opcional que filtra las filas usadas para la agregación.

Devoluciones

Una BINARY con una longitud de 4 096.

Ejemplos

> SELECT hex(trim(TRAILING X'00' FROM bitmap_or_agg(val))) FROM VALUES(x'10'), (x'02') AS T(val);
 12

-- Count the number of distinct values across two tables
> SELECT sum(num_distinct) AS num_distinct
    FROM (SELECT bucket, bitmap_count(bitmap_or_agg(num_distinct)) AS num_distinct
            FROM ((SELECT bitmap_bucket_number(val) AS bucket,
                          bitmap_construct_agg(bitmap_bit_position(val)) AS num_distinct
                     FROM VALUES(1), (2), (1), (-1), (5), (0), (5) AS t(val)
                     GROUP BY ALL)
                  UNION ALL
                  (SELECT bitmap_bucket_number(val) AS bucket,
                          bitmap_construct_agg(bitmap_bit_position(val)) AS num_distinct
                     FROM VALUES(3), (1), (-1), (6), (5), (1), (5), (8) AS t(val)
                     GROUP BY ALL))
            GROUP BY ALL);
  8