我有一个表格,其中一列是数组,我想将数组元素相加:
> create table regres(a int[] not null);
> insert into regres values ('{1,2,3}'), ('{9, 12, 13}');
> select * from regres;
a
-----------
{1,2,3}
{9,12,13}
我希望得到的结果是:
{10, 14, 16}
即: {1 + 9, 2 + 12, 3 + 13}
。
是否已经存在这样的函数?扩展intagg
看起来是一个好的选择,但这样的函数不存在。
预期数组长度在24到31个元素之间,所有元素都为NOT NULL
,数组本身也总是NOT NULL
。所有元素都是基本的int
类型。每个聚合会有两行以上。在查询中,所有数组将具有相同数量的元素。不同的查询将具有不同数量的元素。
我的实现目标是:PostgreSQL 9.1.13
select array[sum(a[1]), sum(a[2]), sum(a[3]), sum(a[4]), ....] from regres;
- user330315