Aggregate

ARRAY_AGG

SnowflakeSnowflake

Mengumpulkan nilai dari beberapa baris menjadi sebuah ARRAY Snowflake. Berguna untuk mengumpulkan data dalam format semi-structured.

Tipe hasil: ARRAYDiperbarui: 6 Jan 2026

Syntax

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
1SELECT ARRAY_AGG(product_id)
2FROM orders
3WHERE 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
1SELECT
2 category,
3 ARRAY_AGG(name) WITHIN GROUP (ORDER BY price DESC) as products_by_price
4FROM products
5GROUP BY category;

Mengelompokkan produk per kategori dalam array, diurutkan berdasarkan harga tertinggi.

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

ARRAY_AGG dengan DISTINCT

SQL
1SELECT
2 customer_id,
3 ARRAY_AGG(DISTINCT product_category) as purchased_categories
4FROM orders
5GROUP BY customer_id;

Mengumpulkan kategori produk unik yang dibeli setiap customer.

Hasil
CUSTOMER_IDPURCHASED_CATEGORIES
CUST-001["Electronics", "Clothing"]
CUST-002["Books", "Electronics"]