All Products
Search
Document Center

MaxCompute:ARRAY_REDUCE

Last Updated:Jul 02, 2025

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. T dalam array<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.