我有一个这样的表:
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
原文地址:https://www.jb51.cc/postgresql/193277.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。