Sdílet prostřednictvím


bitmap_or_agg agregační funkce

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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élka BINARY <= 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