问题描述
我正在运行PostgreSQL 12.4。我有一个相对较大的表,如下所示,其中列1和2均为character varying
类型:
|---------------------|------------------|
| Column 1 | Column 2 |
|---------------------|------------------|
| foo | X |
|---------------------|------------------|
| foo | Y |
|---------------------|------------------|
| foo | Z |
|---------------------|------------------|
| bar | A |
|---------------------|------------------|
| bar | B |
|---------------------|------------------|
| bar | C |
|---------------------|------------------|
我想创建如下内容:
|---------------------|------------------|
| Column 1 | Column 2 |
|---------------------|------------------|
| foo | X,Y,Z |
|---------------------|------------------|
| bar | A,B,C |
|---------------------|------------------|
有一种简单的方法吗?
解决方法
您可以使用string_agg
:
select column1,string_agg(column2,',')
from table_name
group by column1
您可以找到更多信息here。