Как агрегировать таблицу Postgres, чтобы идентификатор был уникальным, а значения столбцов собирались в массив? - PullRequest
0 голосов
/ 27 августа 2018

Я не уверен, как назвать то, что я пытаюсь сделать, поэтому попытка найти это не сработала. Я хотел бы объединить мою таблицу на основе одного столбца и свернуть все строки из другого столбца в массив по уникальному идентификатору.

| ID | some_other_value |
-------------------------
| 1  | A                |
| 1  | B                |
| 2  | C                |
| .. | ...              |

Вернуть

| ID | values_array     |
-------------------------
| 1  | {A, B}           |
| 2  | {C}              |

Извините за плохое объяснение, мне действительно не хватает словарного запаса здесь. Любая помощь с написанием запроса, который достигает того, что в примере, будет очень цениться.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Попробуйте следующее.

select id, array_agg(some_other_value order by some_other_value ) as values_array from <yourTableName> group by id

Вы также можете проверить здесь .

0 голосов
/ 27 августа 2018

См. Агрегатные функции Документация.

SELECT
    id,
    array_agg(some_other_value)
FROM
    the_table
GROUP BY
    id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...