实例表:
- 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,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,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,cc
- (2 rows)