Aggregate
DuckDB
ARRAY_AGG
Mengumpulkan nilai dari beberapa baris menjadi sebuah array/list. Di DuckDB, ARRAY_AGG dan LIST adalah sinonim.
Tipe hasil:
LIST (array)Diperbarui: 6 Jan 2026Syntax
SQL
ARRAY_AGG(expression [ORDER BY sort_expression])Parameter
expressionanywajib
Kolom atau ekspresi yang akan dikumpulkan ke dalam array
ORDER BYclauseopsional
Opsional. Menentukan urutan elemen dalam array
Contoh Penggunaan
Mengumpulkan ID ke dalam Array
SQL
1 SELECT ARRAY_AGG(id) 2 FROM products 3 WHERE category = 'Electronics';
Mengumpulkan semua ID produk elektronik ke dalam array.
Hasil
[1, 5, 8, 12]
Array dengan ORDER BY
SQL
1 SELECT 2 category, 3 ARRAY_AGG(name ORDER BY price DESC) as products_by_price 4 FROM products 5 GROUP BY category;
Mengelompokkan produk per kategori, diurutkan berdasarkan harga.
Hasil
| category | products_by_price |
|---|---|
| Electronics | [MacBook, iPhone, AirPods] |
| Clothing | [Jacket, T-Shirt, Cap] |
UNNEST untuk Membuka Array
SQL
1 WITH product_arrays AS ( 2 SELECT category, ARRAY_AGG(name) as names 3 FROM products 4 GROUP BY category 5 ) 6 SELECT category, UNNEST(names) as product_name 7 FROM product_arrays;
Menggunakan UNNEST untuk membuka array kembali menjadi baris.