Freigeben über


collect_set-Aggregatfunktion

Gilt für: durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt ein Array zurück, das aus allen eindeutigen Werten in expr innerhalb der Gruppe besteht

Syntax

collect_set(expr) [FILTER ( WHERE cond ) ]

Diese Funktion kann auch mithilfe der OVER-Klausel als Fensterfunktion aufgerufen werden.

Argumente

  • expr: Ausdruck beliebigen Typs, mit Ausnahme von MAP
  • cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.

Gibt zurück

Ein ARRAY des Argumenttyps.

Die Reihenfolge der Elemente im Array ist nicht deterministisch. NULL-Werte werden ausgeschlossen.

Beispiele

> SELECT collect_set(col) FROM VALUES (1), (2), (NULL), (1) AS tab(col);
 [1,2]

> SELECT collect_set(col1) FILTER(WHERE col2 = 10)
    FROM VALUES (1, 10), (2, 10), (NULL, 10), (1, 10), (3, 12) AS tab(col1, col2);
 [1,2]