У меня есть данные в Postgres (10.4) в виде
id | my_json
-----------------------------------
1 | {"a": 1, "b": 2, "c": [1,2,3]}
2 | {"a": 3, "b": 5, "c": [2,3,4]}
Я могу вывести данные в формате JSON следующим образом:
WITH l AS (SELECT id, my_json as data FROM table)
SELECT to_json(l) FROM l;
и я получаю:
{"id": 1, "data": {"a": 1, "b": 2, "c": [1,2,3]}}
{"id": 2, "data": {"a": 3, "b": 5, "c": [2,3,4]}}
Но есть ли способ вывести данные с помощью id
?
Как это:
{"1": {"a": 1, "b": 2, "c": [1,2,3]}}
{"2": {"a": 3, "b": 5, "c": [2,3,4]}}
EDIT:
Ответ @Silvio Baez поставил меня на правильный путь, и я понял, что на самом деле это не совсем то, что мне нужно.
Я на самом деле хочу, чтобы результатом было слияние таких объектов, как:
{
"1": {"a": 1, "b": 2, "c": [1,2,3]},
"2": {"a": 3, "b": 5, "c": [2,3,4]}
}
И это достигается аналогичным образом с:
SELECT json_object_agg(id, data::json) FROM table;