bitmap_or_agg
agregační funkce
Platí pro: Databricks SQL Databricks Runtime 13.3 LTS a vyšší
Vrátí bitovou hodnotu OR
všech BINARY
vstupních hodnot ve skupině.
Funkce se běžně používá k počítání počtu jedinečných integrálních čísel v kombinaci s funkcemi bitmap_bucket_number(), bitmap_count(), bitmap_bit_position() a bitmap_construct_agg().
Chcete-li agregovat rastrové obrázky ve formě integrálních čísel, použijte agregační funkci bit_or().
Pokud chcete agregovat pozice bitů do rastrového obrázkuBINARY
, použijte bitmap_construct_agg().
Syntaxe
bitmap_or_agg(expr) [FILTER ( WHERE cond ) ]
Tuto funkci lze také vyvolat jako funkci okna pomocí OVER
klauzule.
Argumenty
expr
: DélkaBINARY
<= 4096
představující rastrový obrázek. Azure Databricks zkrátí delší hodnoty na 4096.cond
: Volitelný logický výraz filtrující řádky použité pro agregaci.
Návraty
Délka BINARY
4096.
Příklady
> 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