Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
Dotyczy:
Databricks SQL
Databricks Runtime
Agreguje elementy w tablicy przy użyciu niestandardowego agregatora. Ta funkcja jest synonimem funkcji reduce.
Składnia
aggregate(expr, start, merge [, finish])
Argumenty
-
expr: wyrażenie ARRAY. -
start: początkowa wartość dowolnego typu. -
merge: funkcja lambda używana do agregowania bieżącego elementu. -
finish: opcjonalna funkcja lambda używana do finalizowania agregacji.
Zwraca
Typ wyniku jest zgodny z typem finish wyniku funkcji lambda, jeśli istnieje lub start.
Stosuje wyrażenie do stanu początkowego i wszystkich elementów tablicy i zmniejsza je do jednego stanu. Stan końcowy jest konwertowany na końcowy wynik przez zastosowanie finish funkcji.
Funkcja merge przyjmuje dwa parametry. Pierwszy jest akumulatorem, drugim elementem do agregowania.
Akumulator i wynik musi być typu start.
Funkcja opcjonalna finish przyjmuje jeden parametr i zwraca wynik końcowy.
Przykłady
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5