我正在使用此查询来获取汇总结果:
select _bs, string_agg(_wbns, ',') from bag group by 1;
我收到此错误:
运行查询时出错:函数string_agg(字符不同,“未知”) 不存在提示:没有函数与给定的名称和参数匹配 类型。您可能需要添加显式类型强制转换。
我还尝试了array_agg()并得到相同的错误。
请帮助我弄清楚我可以用来汇总结果的其他选项。
答案 0 :(得分:2)
您必须使用java.time
进行换档
对于查询中的每个组,LISTAGG聚合函数根据ORDER BY表达式对该组的行进行排序,然后将值连接为单个字符串。
LISTAGG是仅计算节点功能。如果查询未引用用户定义的表或Amazon Redshift系统表,该函数将返回错误。
您的查询将如下所示
listagg
为了更好地理解Listagg
答案 1 :(得分:1)
使用listagg函数:
select _bs,
listagg(_wbns,',')
within group (order by _bs) as val
from bag
group by _bs
答案 2 :(得分:1)
Redshift具有listagg
函数,您可以改用它:
SELECT _bs, LISTAGG(_wbns, ',') FROM bag GROUP BY _bs;
答案 3 :(得分:0)
错误:必须在至少一个用户创建的表上应用一个或多个使用的函数。 仅用户表功能的示例包括LISTAGG,MEDIAN,PERCENTILE_CONT等
SELECT refc.constraint_name, refc.update_rule, refc.delete_rule, kcu.table_name,
LISTAGG(distinct kcu.column_name, ',') AS columns
FROM information_schema.referential_constraints AS refc,
information_schema.key_column_usage AS kcu
WHERE refc.constraint_schema = 'abc' AND refc.constraint_name = kcu.constraint_name AND refc.constraint_schema = kcu.table_schema
AND kcu.table_name = 'xyz'
GROUP BY refc.constraint_name, refc.update_rule, refc.delete_rule, kcu.table_name;