我正在使用此查询来获取汇总结果:

select _bs, string_agg(_wbns, ',') from bag group by 1;

我收到此错误:



我也尝试了array_agg()并得到同样的错误。

请帮助我弄清楚我可以用来汇总结果的其他选项。

最佳答案

您必须使用listagg进行移位

对于查询中的每个组,LISTAGG聚合函数根据ORDER BY表达式对该组的行进行排序,然后将值连接为单个字符串。

LISTAGG是仅计算节点功能。如果查询未引用用户定义的表或Amazon Redshift系统表,该函数将返回错误。

您的查询将如下所示

select _bs,
listagg(_wbns,',')
within group (order by _wbns) as val
from bag
group by _bs
order by _bs;

为了更好地了解Listagg

09-25 20:17