JSON

JSONB_OBJECT_AGG

PostgreSQLPostgreSQL

Aggregate function yang membangun JSON object dari pasangan key-value. Setiap row memberikan satu key-value pair ke object hasil.

Tipe hasil: jsonb

Syntax

SQL
JSONB_OBJECT_AGG(key, value)

Parameter

keytextwajib

Kolom yang menjadi key

valueanywajib

Kolom yang menjadi value

Contoh Penggunaan

Build Object dari Rows

SQL
1SELECT JSONB_OBJECT_AGG(key, value)
2FROM (
3 VALUES (name, John), (age, 30), (city, Jakarta)
4) AS t(key, value);

Mengubah rows key-value menjadi single object.

Hasil
jsonb_object_agg
{"name": "John", "age": "30", "city": "Jakarta"}

Pivot Data ke JSON

SQL
1SELECT
2 user_id,
3 JSONB_OBJECT_AGG(setting_name, setting_value) AS settings
4FROM user_settings
5GROUP BY user_id;

Pivot settings menjadi JSON object per user.

Hasil
user_idsettings
1{"theme": "dark", "language": "id", ...}

Dynamic Column to Object

SQL
1SELECT
2 product_id,
3 JSONB_OBJECT_AGG(attribute_name, attribute_value) AS attributes
4FROM product_attributes
5GROUP BY product_id;

Mengkonversi dynamic attributes menjadi JSON object.

Fungsi Equivalen di Database Lain