Создать json из данных таблицы postgresql

Предположим у меня есть такая таблица в PostgreSQL:

 id |   nickname   |    name
----+--------------+-----------
  1 |     some     |    Alex
  2 |   nickname   |     Po
  3 |     here     |    BoB
  4 |  for example |    Rich

Мне нужно с помощью select команды получить такой результат:

{"id": [1, 2, 3, 4], "nickname": ["some", "nickname", "here", "for example"], "name": ["Alex", "Po", "BoB", "Rich"]}

Это возможно? Не смог найти ничего похожего


Ответы (2 шт):

Автор решения: Roman Konoval

Как-то так:

select json_build_object(
   'id', array_agg(id order by id),
   'nickname', array_agg(nickname order by id),
   'name', array_agg(name order by id))
from tbl
→ Ссылка
Автор решения: Константин Королев
select 
  json_agg(row_to_json(row)) 
from (select * from table) row;
→ Ссылка