Mar*_*dad 3 sql join amazon-redshift
我正在使用亚马逊红移.如何组合列的结果.
如果原始行是:
*ID Name Color
----------------
1 John White
1 John Black
2 Mark Blue
2 Mark Red*
Run Code Online (Sandbox Code Playgroud)
结果应该是:
*ID Name Color
----------------
1 John White Black
2 Mark Blue Red*
Run Code Online (Sandbox Code Playgroud)
Redshift为您提供所需的功能LISTAGG()
SELECT id, name, LISTAGG(Color,' ') AS Colors
FROM yourtable
GROUP BY id, name
Run Code Online (Sandbox Code Playgroud)
对于查询中的每个组,LISTAGG聚合函数根据ORDER BY表达式对该组的行进行排序,然后将值连接成单个字符串. 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
Run Code Online (Sandbox Code Playgroud)