aggregate
Fungsi
Berlaku untuk: pemeriksaan Databricks SQL Databricks Runtime
Mengagregasi elemen dalam array menggunakan agregator kustom. Fungsi ini adalah sinonim untuk mengurangi fungsi.
Sintaks
aggregate(expr, start, merge [, finish])
Argumen
expr
: Ekspresi ARRAY.start
: Nilai awal dari semua jenis.merge
: Fungsi lambda yang digunakan untuk mengagregasi elemen saat ini.finish
: Fungsi lambda opsional yang digunakan untuk menyelesaikan agregasi.
Kembali
Jenis hasil cocok dengan jenis finish
hasil fungsi lambda jika ada atau start
.
Menerapkan ekspresi ke status awal dan semua elemen dalam array, dan menguranginya menjadi satu status. Status akhir dikonversi menjadi hasil akhir dengan menerapkan finish
fungsi.
Fungsi ini merge
mengambil dua parameter. Yang pertama adalah akumulator, yang kedua elemen yang akan diagregasi.
Akumulator dan hasilnya harus dari jenis start
.
Fungsi opsional finish
mengambil satu parameter dan mengembalikan hasil akhir.
Contoh
> 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