我有一个这样的表:
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