bitmap_or_agg
(función de agregado)
Se aplica a: Databricks SQL 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
: UnBINARY
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