I am using Amazon redshift. How do I combine the result of the columns.
If the original rows are:
*ID Name Color
----------------
1 John White
1 John Black
2 Mark Blue
2 Mark Red*
the result should be:
*ID Name Color
----------------
1 John White Black
2 Mark Blue Red*
Redshift provides a function LISTAGG() for what you need
SELECT id, name, LISTAGG(Color,' ') AS Colors
FROM yourtable
GROUP BY id, name
For each group in a query, the LISTAGG aggregate function orders the rows for that group according to the ORDER BY expression, then concatenates the values into a single string. http://docs.aws.amazon.com/redshift/latest/dg/r_LISTAGG.html
SELECT id, name
, LISTAGG(Color,' ') WITHIN GROUP (ORDER BY name) AS Colors
FROM yourtable
GROUP BY id, name
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With