Aggregate
Snowflake
ARRAY_AGG
Mengumpulkan nilai dari beberapa baris menjadi sebuah ARRAY Snowflake. Berguna untuk mengumpulkan data dalam format semi-structured.
Tipe hasil:
ARRAYDiperbarui: 6 Jan 2026Syntax
SQL
ARRAY_AGG(expression) [WITHIN GROUP (ORDER BY sort_expression)]Parameter
expressionanywajib
Kolom atau ekspresi yang akan dikumpulkan ke dalam array
WITHIN GROUP (ORDER BY)clauseopsional
Menentukan urutan elemen dalam array
Contoh Penggunaan
Mengumpulkan ID ke dalam Array
SQL
1 SELECT ARRAY_AGG(product_id) 2 FROM orders 3 WHERE customer_id = 'CUST-001';
Mengumpulkan semua product_id dari orders customer tertentu ke dalam array.
Hasil
["PROD-001", "PROD-005", "PROD-008"]
Array dengan ORDER BY
SQL
1 SELECT 2 category, 3 ARRAY_AGG(name) WITHIN GROUP (ORDER BY price DESC) as products_by_price 4 FROM products 5 GROUP BY category;
Mengelompokkan produk per kategori dalam array, diurutkan berdasarkan harga tertinggi.
Hasil
| CATEGORY | PRODUCTS_BY_PRICE |
|---|---|
| Electronics | ["MacBook", "iPhone", "AirPods"] |
| Clothing | ["Jacket", "T-Shirt", "Cap"] |
ARRAY_AGG dengan DISTINCT
SQL
1 SELECT 2 customer_id, 3 ARRAY_AGG(DISTINCT product_category) as purchased_categories 4 FROM orders 5 GROUP BY customer_id;
Mengumpulkan kategori produk unik yang dibeli setiap customer.
Hasil
| CUSTOMER_ID | PURCHASED_CATEGORIES |
|---|---|
| CUST-001 | ["Electronics", "Clothing"] |
| CUST-002 | ["Books", "Electronics"] |