Aracılığıyla paylaş


bitmap_or_agg toplama işlevi

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri

Gruptaki tüm BINARY giriş değerlerinin bit yönünü OR döndürür.

İşlev yaygın olarak bitmap_bucket_number(), bitmap_count(), bitmap_bit_position() ve bitmap_construct_agg() işlevleriyle birlikte ayrı tam sayı sayısını saymak için kullanılır.

Bit eşlemleri tam sayı biçiminde toplamak için bit_or() toplama işlevini kullanın. Bit konumlarını bit eşlem halinde BINARY toplamak için bitmap_construct_agg() kullanın.

Sözdizimi

bitmap_or_agg(expr) [FILTER ( WHERE cond ) ]

Bu işlev yan tümcesi OVER kullanılarak bir pencere işlevi olarak da çağrılabilir.

Bağımsız değişkenler

  • expr: Bit BINARY eşlemi temsil eden uzunluk <= 4096 . Azure Databricks daha uzun değerleri 4096'ya kısaltıyor.
  • cond: Toplama için kullanılan satırları filtreleyerek isteğe bağlı bir boole ifadesi.

Döndürülenler

BINARY 4096 uzunluğunda.

Örnekler

> 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