如何在redshift中对GROUP BY和CONCATENATE字段进行分组,例如,如果我有表
ID COMPANY_ID EMPLOYEE 1 1 Anna 2 1 Bill 3 2 Carol 4 2 Dave
我如何获得这样的结果
COMPANY_ID EMPLOYEE 1 Anna, Bill 2 Carol, Dave
PostgreSQL有一些解决方案,但是Redshift righnow中没有答案中提到的功能。
好吧,我来晚了一点,但是关于此功能的公告发生在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
我很高兴看到此功能,并且我们的许多生产脚本都可以升级,同时Redshift会不断添加所有新功能。
这是有关该功能的文档