aggregate
Funkció
A következőre vonatkozik: Databricks SQL Databricks Runtime
Egy tömb elemeit összesíti egy egyéni összesítő használatával. Ez a függvény a csökkentési függvény szinonimája.
Szintaxis
aggregate(expr, start, merge [, finish])
Argumentumok
expr
: TÖMB kifejezés.start
: Bármilyen típusú kezdeti érték.merge
: Az aktuális elem összesítésére használt lambda függvény.finish
: Az aggregáció véglegesítéséhez használt opcionális lambda függvény.
Visszatérési érték
Az eredmény típusa megegyezik a lambda függvény eredménytípusával finish
, ha létezik vagy start
.
Egy kifejezést alkalmaz egy kezdeti állapotra és a tömb összes elemére, és ezt egyetlen állapotra csökkenti. A végső állapot egy finish
függvény alkalmazásával lesz a végeredmény.
A merge
függvény két paramétert vesz igénybe. Az első az akkumulátor, a második az összesítendő elem.
Az akkumulátornak és az eredménynek a típusának start
kell lennie.
A választható finish
függvény egy paramétert vesz igénybe, és visszaadja a végeredményt.
Példák
> 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