我有一个这样的表:
oid | identifier | value
1 | 10 | 101
2 | 10 | 102
3 | 20 | 201
4 | 20 | 202
5 | 20 | 203
我想查询这个表来得到如下结果:
identifier | values[]
10 | {101,102}
20 | {201,202,203}
我无法想像这样做。那可能吗 ?怎么样 ?
非常感谢你。
您必须创建
一个聚合
函数,例如
CREATE AGGREGATE array_accum (anyelement)
(
sfunc = array_append,stype = anyarray,initcond = '{}'
);
然后
SELECT identifier,array_accum(value) AS values FROM table GROUP BY identifier;
HTH