我正在使用此查询来获取汇总结果:
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