Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce
Platí pro:
Databricks SQL
Databricks Runtime
Agreguje prvky v poli pomocí vlastního agregátoru. Tato funkce je synonymem pro funkci aggregate.
Syntaxe
reduce(expr, start, merge [, finish] )
Argumenty
-
expr: VýrazARRAY. -
start: Počáteční hodnota libovolného typu. -
merge: Funkce lambda použitá k agregaci aktuálního prvku. -
finish: Volitelná funkce lambda použitá k dokončení agregace.
Návraty
Typ výsledku odpovídá typu výsledku finish funkce lambda, pokud existuje nebo start.
Použije výraz na počáteční stav a všechny prvky v poli a zmenší ho na jeden stav. Konečný stav se převede na konečný výsledek použitím finish funkce.
Funkce merge přebírá dva parametry. První je akumulátor a druhý je prvek, který se má agregovat.
Akumulátor a výsledek musí být typu start.
Volitelná finish funkce přebírá jeden parametr a vrací konečný výsledek.
Příklady
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT reduce(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT reduce(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