Anda harus menentukan, bagaimana untuk mengelompokkan nilai yang memiliki category_id
yang sama . Gabungkan mereka? Menghitung jumlah?
Untuk membuat daftar nilai yang dipisahkan koma, pernyataan Anda dapat terlihat seperti ini:
SELECT category_id
,string_agg(col1, ', ') AS col1_list
,string_agg(col2, ', ') AS col2_list
FROM items
GROUP BY category_id
Anda memerlukan Postgres 9.0 atau yang lebih baru untuk string_agg(col1, ', ')
.Dalam versi yang lebih lama Anda dapat mengganti dengan array_to_string(array_agg(col1), ', ')
. Fungsi agregat lainnya di sini
.
Untuk mengagregasi nilai di PostgreSQL adalah pendekatan yang jelas lebih unggul daripada menggabungkan nilai di klien. Postgres sangat cepat ini dan mengurangi lalu lintas (jaringan).