从查询结果生成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