#sql #postgresql #group-by #string-aggregation
#sql #postgresql #группировать по #строка-агрегация
Вопрос:
Я использую 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 |
|---------------------|------------------|
Есть ли простой способ сделать это?
Ответ №1:
Вы можете использовать string_agg
:
select column1, string_agg(column2, ', ')
from table_name
group by column1
Вы можете найти более подробную информацию здесь.
Комментарии:
1. @Xela вы можете поблагодарить меня, проголосовав и приняв ответ;>