Генерировать json из результата запроса - PullRequest
0 голосов
/ 12 марта 2020

У меня есть таблица locations:

country, city
USA, New York
USA, San Francisco
UK, London
UK, Bristol
Poland, Warsaw

Есть ли способ использовать функции postgres для генерации json, например:

{
    'USA': ['New York', 'San Francisco'],
    'UK': ['London', 'Bristol'],
    'Poland': ['Warsaw']
}

1 Ответ

1 голос
/ 12 марта 2020

Нажмите: demo: db <> fiddle

SELECT 
   json_object_agg(country, cities)    -- 2
FROM (
   SELECT
      country,
      json_agg(city) as cities         -- 1
   FROM
       locations
   GROUP BY country                    -- 1
) s
  1. Объедините элементы city по их country в один массив JSON, используя json_agg()
  2. После этого вы можете объединить все строки в один JSON объект, используя json_object_agg()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...