Aggregate

ARRAY_AGG

BigQueryBigQuery

Mengumpulkan nilai dari beberapa baris menjadi sebuah ARRAY. Fungsi powerful di BigQuery untuk membuat nested data structures.

Tipe hasil: ARRAY<T>Diperbarui: 16 Mei 2026

Syntax

SQL
ARRAY_AGG([DISTINCT] expression [IGNORE NULLS | RESPECT NULLS] [ORDER BY key] [LIMIT n])

Parameter

expressionanywajib

Kolom atau ekspresi yang akan dikumpulkan ke dalam array

DISTINCTmodifieropsional

Hanya kumpulkan nilai unik

IGNORE NULLSmodifieropsional

Abaikan nilai NULL (default behavior)

RESPECT NULLSmodifieropsional

Sertakan nilai NULL dalam array

ORDER BYclauseopsional

Mengurutkan elemen dalam array

LIMITclauseopsional

Membatasi jumlah elemen dalam array

Contoh Penggunaan

Mengumpulkan Nilai ke Array

SQL
1SELECT
2 customer_id,
3 ARRAY_AGG(product_id) as product_ids
4FROM `project.dataset.orders`
5GROUP BY customer_id
6LIMIT 3;

Membuat array product_id per customer.

Hasil
customer_idproduct_ids
C001[101, 205, 342]
C002[101, 156]
C003[205, 342, 401, 502]

ARRAY_AGG dengan ORDER BY dan LIMIT

SQL
1SELECT
2 category,
3 ARRAY_AGG(product_name ORDER BY sales_count DESC LIMIT 3) as top_3_products
4FROM `project.dataset.products`
5GROUP BY category;

Mengambil 3 produk terlaris per kategori.

Hasil
categorytop_3_products
Electronics["iPhone", "MacBook", "iPad"]
Fashion["Nike Shoes", "Levi's Jeans", "Zara Dress"]

ARRAY_AGG dengan STRUCT

SQL
1SELECT
2 department,
3 ARRAY_AGG(
4 STRUCT(employee_name, salary, hire_date)
5 ORDER BY salary DESC
6 LIMIT 5
7 ) as top_paid_employees
8FROM `project.dataset.employees`
9GROUP BY department;

Membuat array of structs untuk top 5 karyawan bergaji tertinggi.

Hasil
departmenttop_paid_employees
Engineering[{name: "Alice", salary: 25M, ...}, ...]

ARRAY_AGG DISTINCT

SQL
1SELECT
2 user_id,
3 ARRAY_AGG(DISTINCT category ORDER BY category) as unique_categories
4FROM `project.dataset.user_activity`
5GROUP BY user_id;

Mengumpulkan kategori unik yang dikunjungi user.

Hasil
user_idunique_categories
U001["Books", "Electronics", "Sports"]
U002["Fashion", "Food", "Home"]

Pertanyaan Umum tentang ARRAY_AGG

Apa itu fungsi ARRAY_AGG di BigQuery?
Mengumpulkan nilai dari beberapa baris menjadi sebuah ARRAY. Fungsi powerful di BigQuery untuk membuat nested data structures. Di BigQuery, fungsi ARRAY_AGG termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan ARRAY_AGG di BigQuery?
Gunakan sintaks berikut: ARRAY_AGG([DISTINCT] expression [IGNORE NULLS | RESPECT NULLS] [ORDER BY key] [LIMIT n]). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi ARRAY_AGG?
Fungsi ARRAY_AGG mengembalikan nilai bertipe ARRAY<T>. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi ARRAY_AGG?
Fungsi ini memiliki 1 parameter wajib dan 5 parameter opsional. Parameter yang digunakan: expression (any, wajib): Kolom atau ekspresi yang akan dikumpulkan ke dalam array; DISTINCT (modifier, opsional): Hanya kumpulkan nilai unik; IGNORE NULLS (modifier, opsional): Abaikan nilai NULL (default behavior); RESPECT NULLS (modifier, opsional): Sertakan nilai NULL dalam array; ORDER BY (clause, opsional): Mengurutkan elemen dalam array; LIMIT (clause, opsional): Membatasi jumlah elemen dalam array.