从查询结果生成json

从查询结果生成json,json,postgresql,Json,Postgresql,我有表位置: 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'] } 使用JSON\u agg() 之后,您可以

我有表
位置

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']
}

  • 使用
    JSON\u agg()
  • 之后,您可以使用
    JSON\u object\u agg()将所有行聚合到一个JSON对象中。
  • SELECT 
       json_object_agg(country, cities)    -- 2
    FROM (
       SELECT
          country,
          json_agg(city) as cities         -- 1
       FROM
           locations
       GROUP BY country                    -- 1
    ) s