本文介绍了无法汇总阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以创建一个数组的数组:
I can create an array of arrays:
select array[array[1, 2], array[3, 4]];
array
---------------
{{1,2},{3,4}}
但我不能聚集数组:
But I can't aggregated arrays:
select array_agg(array[c1, c2])
from (
values (1, 2), (3, 4)
) s(c1, c2);
ERROR: could not find array type for data type integer[]
我是什么失踪?
推荐答案
我使用的:
CREATE AGGREGATE array_agg_mult(anyarray) (
SFUNC = array_cat,
STYPE = anyarray,
INITCOND = '{}'
);
和之类的查询:
SELECT array_agg_mult( ARRAY[[x,x]] ) FROM generate_series(1,10) x;
请注意,您必须汇总2维数组,所以你经常要在一个单一的元素来包装一个输入数组 ARRAY [array_to_aggregate]
数组构造。
Note that you must aggregate 2-dimensional arrays, so you'll often want to wrap an input array in a single-element ARRAY[array_to_aggregate]
array constructor.
这篇关于无法汇总阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!