Lewati ke konten utama

String Aggregation

Digunakan untuk menggabungkan banyak row menjadi satu string.

contoh

itemtransaction
31003
11001
21002

Query

SELECT
tl.vendor_id,
STRING_AGG(t.tranid::text, '; ' ORDER BY tl.item) AS lpb
FROM transaction_line tl
JOIN transactions t
ON t.id = tl.transaction
GROUP BY tl.vendor_id;

Result

vendor_idlpb
1LPB-001; LPB-002
2LPB-010; LPB-011

Aggregation Flow

Penjelasan

Query ini bekerja dengan cara :

  1. Menggabungkan transaction_line dengan transactions
  2. Mengelompokan data berdasarkan vendor_id
  3. Memfilter baris berdasarkan ORDER BY tl.item
  4. Menggabungkan semua transaction IDs menjadi satu string menggunakan STRING_AGG

istilah lain pada sql

DatabaseFunction
PostgreSQLSTRING_AGG()
OracleLISTAGG()
MySQLGROUP_CONCAT()
SQL ServerSTRING_AGG()