Aggregate

ARRAY_AGG

DuckDBDuckDB

Mengumpulkan nilai dari beberapa baris menjadi sebuah array/list. Di DuckDB, ARRAY_AGG dan LIST adalah sinonim.

Tipe hasil: LIST (array)Diperbarui: 6 Jan 2026

Syntax

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
1SELECT ARRAY_AGG(id)
2FROM products
3WHERE category = 'Electronics';

Mengumpulkan semua ID produk elektronik ke dalam array.

Hasil
[1, 5, 8, 12]

Array dengan ORDER BY

SQL
1SELECT
2 category,
3 ARRAY_AGG(name ORDER BY price DESC) as products_by_price
4FROM products
5GROUP BY category;

Mengelompokkan produk per kategori, diurutkan berdasarkan harga.

Hasil
categoryproducts_by_price
Electronics[MacBook, iPhone, AirPods]
Clothing[Jacket, T-Shirt, Cap]

UNNEST untuk Membuka Array

SQL
1WITH product_arrays AS (
2 SELECT category, ARRAY_AGG(name) as names
3 FROM products
4 GROUP BY category
5)
6SELECT category, UNNEST(names) as product_name
7FROM product_arrays;

Menggunakan UNNEST untuk membuka array kembali menjadi baris.