Aracılığıyla paylaş


bitmap_construct_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 bit konumlarının bit yönünü OR döndürür. bir grup içinde BINARY olarak 0 ile 32767 arasında.

İşlev genellikle bitmap_bucket_number(), bitmap_count() ve bitmap_bit_position() işlevleriyle birlikte yoğun bir ayrı tam sayı kümesinin 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.

Sözdizimi

bitmap_construct_agg(expr) [FILTER ( WHERE cond ) ]

Bu işlev, OVER kullanılarak bir pencere işlevi olarak da çağrılabilir.

Argümanlar

  • expr: Dizedeki bit konumunu temsil eden 0 ile 32767 arasındaki tam sayısal ifade BINARY .
  • cond: Toplamada kullanılacak satırları filtrelemeye yarayan isteğe bağlı bir boole ifadesi.

İadeler

BINARY 4096 uzunluğunda.

Örnekler

> SELECT hex(trim(TRAILING X'00' FROM bitmap_construct_agg(val))) FROM VALUES(0) AS T(val);
 01

> SELECT hex(trim(TRAILING X'00' FROM bitmap_construct_agg(val))) FROM VALUES(15) AS T(val);
 0080

> SELECT hex(trim(TRAILING X'00' FROM bitmap_construct_agg(val)))
   FROM VALUES(1), (3), (7), (15), (31) AS T(val);
 8A800080

-- Count the number of distinct values
> SELECT sum(num_distinct) AS num_distinct
    FROM (SELECT bitmap_bucket_number(val),
                 bitmap_count(bitmap_construct_agg(bitmap_bit_position(val)))
            FROM VALUES(1), (2), (1), (-1), (5), (0), (5) AS t(val)
            GROUP BY ALL) AS distinct_vals_by_bucket(bucket, num_distinct)
  5