Mengagregasi elemen-elemen dalam Array a.
Sintaksis
R array_reduce(array<T> <a>, buf <init>, function<buf, T, buf> <merge>, function<buf, R> <final>)Parameter
a: Wajib. Menentukan array.
Tdalamarray<T>menunjukkan tipe data elemen-elemen dalam array. Elemen-elemen dapat berupa tipe data apa pun.init: Wajib. Nilai awal hasil perantara yang digunakan untuk mengagregasi elemen-elemen.
merge: Wajib. Fungsi bawaan, fungsi yang ditentukan pengguna, atau ekspresi yang digunakan untuk memproses setiap elemen dalam Array a dan hasil perantara. Fungsi atau ekspresi ini menggunakan elemen-elemen dari Array a serta parameter init sebagai input.
final: Wajib. Fungsi bawaan, fungsi yang ditentukan pengguna, atau ekspresi yang digunakan untuk mengonversi hasil perantara menjadi hasil akhir. Fungsi atau ekspresi ini menggunakan hasil dari merge sebagai input. R menentukan tipe data keluaran.
Nilai kembali
Tipe data nilai kembali sama dengan tipe data yang ditentukan untuk final.
Contoh
-- Nilai kembali adalah 6.
select array_reduce(array(1, 2, 3), 0, (buf, e)->buf + e, buf->buf);
-- Nilai kembali adalah 2.5.
select array_reduce(array(1, 2, 3, 4), named_struct('sum', 0, 'count', 0), (buf, e)->named_struct('sum', buf.sum + e, 'count', buf.count + 1), buf -> buf.sum / buf.count);Fungsi terkait
ARRAY_REDUCE adalah fungsi tipe kompleks. Untuk informasi lebih lanjut tentang fungsi-fungsi terkait pemrosesan data dari tipe data kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Fungsi Tipe Kompleks.
Dalam contoh-contoh di atas, kombinasi tanda hubung dan tanda kurung penutup
(->)digunakan. Untuk informasi lebih lanjut tentang cara menggunakan kombinasi tanda hubung dan tanda kurung penutup(->)dalam fungsi Lambda, lihat Fungsi Lambda.