Bagikan melalui


bitmap_or_aggFungsi agregat

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 13.3 LTS ke atas

Mengembalikan OR bitwise dari semua nilai input BINARY dalam grup.

Fungsi ini umumnya digunakan untuk menghitung jumlah angka integral yang berbeda dalam kombinasi dengan fungsi bitmap_bucket_number(), bitmap_count(), bitmap_bit_position(), dan bitmap_construct_agg().

Untuk mengagregasi bitmap dalam bentuk numerik integral, gunakan fungsi agregat bit_or(). Untuk mengagregasi posisi bit ke dalam BINARY bitmap, gunakan bitmap_construct_agg().

Sintaks

bitmap_or_agg(expr) [FILTER ( WHERE cond ) ]

Fungsi ini juga dapat dipanggil sebagai fungsi jendela menggunakan klausa OVER.

Argumen

  • expr: Sebuah BINARY dengan panjang <= 4096 yang mewakili bitmap. Azure Databricks memotong nilai yang lebih panjang menjadi 4096.
  • cond: Ekspresi boolean opsional yang memfilter baris yang digunakan untuk agregasi.

Pengembalian

Sebuah BINARY dengan panjang 4096.

Contoh

> 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