Du bliver nødt til at definere, hvordan at gruppere værdier, der deler den samme category_id
. Sammenkæde dem? Beregn en sum?
For at oprette kommaseparerede lister over værdier kan dit udsagn se sådan ud:
SELECT category_id
,string_agg(col1, ', ') AS col1_list
,string_agg(col2, ', ') AS col2_list
FROM items
GROUP BY category_id
Du skal bruge Postgres 9.0 eller nyere til string_agg(col1, ', ')
.I ældre versioner kan du erstatte med array_to_string(array_agg(col1), ', ')
. Flere samlede funktioner her
.
At aggregere værdier i PostgreSQL er den klart overlegne tilgang i modsætning til at aggregere værdier i klienten. Postgres er meget hurtig ved dette, og det reducerer (netværks)trafik.