一尘不染

如何在redshift中对GROUP BY和CONCATENATE字段进行分组

sql

如何在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中没有答案中提到的功能。


阅读 225

收藏
2021-03-17

共1个答案

一尘不染

好吧,我来晚了一点,但是关于此功能公告发生在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会不断添加所有新功能。

这是有关该功能的文档

2021-03-17