PostgreSQL 多行变一行
实例表:
postgres=# d book2
Table "public.book2"
Column | Type | Modifiers
--------+-------------------+----------------------------------------------------
id | integer | not null default nextval("book2_id_seq"::regclass)
name | character varying |
tag | character varying |postgres=# select * from book2; id | name | tag ----+------+----- 1 | java | aa 1 | java | bb 1 | java | cc 2 | C++ | dd 2 | C++ | ee (5 rows)需要的效果:
name | string_agg ------+------------ C++ | dd,ee java | aa,bb,cc (2 rows)
postgres=# select name,string_agg(tag,",") from book2 group by name; name | string_agg ------+------------ C++ | dd,ee java | aa,bb,cc (2 rows)
方法2:array_agg(字段名)
postgres=# select name,array_agg(tag) from tb3 group by name;
name | array_agg
------+------------
c++ | {dd,ee}
java | {aa,bb,cc}
(2 rows)<strong>
</strong>postgres=# select name,array_to_string(array_agg(tag),",") from tb3 group by name;
name | array_to_string
------+-----------------
c++ | dd,ee
java | aa,bb,cc
(2 rows)array_agg(distinct(字段名)) 拼接唯一的字段
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: php文字水印和php图片水印实现代码
- 下一篇: tp常用的系统常量
