Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 13.3 LTS und höher
Gibt das bitweise OR aller BINARY-Eingabewerte in der Gruppe zurück
Die Funktion wird häufig verwendet, um die Anzahl unterschiedlicher Integralzahlen in Kombination mit den Funktionen bitmap_bucket_number(), bitmap_count(), bitmap_bit_position() und bitmap_construct_agg() zu zählen.
Um Bitmaps in Form von Integralzahlen zu aggregieren, verwenden Sie die bit_or()-Aggregatfunktion.
Verwenden Sie BINARY, um Bitpositionen in einer -Bitmap zu aggregieren.
Syntax
bitmap_or_agg(expr) [FILTER ( WHERE cond ) ]
Diese Funktion kann auch mithilfe der -Klausel als OVER aufgerufen werden.
Argumente
-
expr: EineBINARYder Länge<= 4096, die eine Bitmap darstellt. Azure Databricks schneidet längere Werte auf 4096 ab. -
cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.
Gibt zurück
BINARY der Länge 4096.
Beispiele
> 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