如何在redshift中GROUP BY和CONCATENATE字段

spa*_*ats 18 sql postgresql group-by string-concatenation amazon-redshift

如何在红移中进行GROUP BY和CONCATENATE字段,例如,如果我有桌子

ID   COMPANY_ID   EMPLOYEE
1    1            Anna
2    1            Bill
3    2            Carol
4    2            Dave
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这样的结果

COMPANY_ID   EMPLOYEE
1            Anna, Bill
2            Carol, Dave
Run Code Online (Sandbox Code Playgroud)

有一些解决方案PostgreSQL,但在Redshift righnow中没有提供答案中提到的功能.

roh*_*lky 25

好吧,我有点晚了,但关于这个功能公告发生在2015年8月3日.Redshift引入了LISTAGG窗口功能,现在可以这样做.这是你的问题的快速解决方案 - 可能有用也可能没用,但把它放在这里让人们知道!

SELECT COMPANY_ID,
       LISTAGG(EMPLOYEE,', ')
WITHIN GROUP (ORDER BY EMPLOYEE)
OVER (PARTITION BY COMPANY_ID) AS EMPLOYEE
FROM YOUR_TABLE
ORDER BY COMPANY_ID
Run Code Online (Sandbox Code Playgroud)

我很高兴看到这个功能,我们的许多生产脚本都可以升级,Redshift不断添加所有新功能.

这是关于该功能的文档