Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime
Mengagregasi elemen dalam array menggunakan penggabung kustom. Fungsi ini adalah sinonim untuk fungsi reduce.
Sintaks
aggregate(expr, start, merge [, finish])
Argumen
-
expr: Ekspresi ARRAY. -
start: Nilai awal dari jenis apa pun. -
merge: Fungsi lambda yang digunakan untuk mengagregasi elemen saat ini. -
finish: Fungsi lambda opsional yang digunakan untuk menyelesaikan agregasi.
Pengembalian
Jenis hasil cocok dengan jenis hasil finish fungsi lambda jika ada atau start.
Menerapkan ekspresi ke keadaan awal dan semua elemen dalam array, dan mengurangi elemen-elemen ini menjadi satu keadaan. Status akhir diubah menjadi hasil akhir dengan menerapkan fungsi finish.
Fungsi merge mengambil dua parameter. Yang pertama adalah akumulator, yang kedua elemen yang akan diagregasi.
Akumulator dan hasilnya harus dari jenis start.
Fungsi finish opsional 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