Пример:
sqlfiddle.com/#!17/000c4c/1/0
Есть таблица
People со след. строками:
| ID | name | age |
| 773 | Katya | 21 |
| 828 | Masha | 23 |
| 999 | Danya | 41 |
| 999 | Vanya | 12 |
Нужно получить записи в виде JSON объекта, где ключом объекта будет ID.
Это можно сделать так: SELECT jsonb_object_agg(ID, People) FROM People;
Результат:
{
"773": {"ID": 773, "name": "Katya", "age": "21"},
"828": {"ID": 773, "name": "Masha", "age": "23"},
"999": {"ID": 773, "name": "Danya", "age": "41"}
}
Но ID в таблице могут повторятся (это важно), из-за этого остальные записи с дублирующимися ID отбрасываются.
Нужно из этой таблицы получить следующее:
{
"773": [
{"ID": 773, "name": "Katya", "age": "21"}
],
"828": [
{"ID": 828, "name": "Masha", "age": "23"}
],
"999": [
{"ID": 999, "name": "Danya", "age": "41"},
{"ID": 999, "name": "Vanya", "age": "12"}
]
}
Как такое можно провернуть?