2017-07-18 78 views
2

試圖獲取其構造這樣的JSON響應:的Postgres返回JSON與組

{ 
    'news_source_1' : [{'headline': 'title'},{'headline': 'title'}], 
    'news_source_2' : [{'headline': 'title'},{'headline': 'title'}], 
    'news_source_3' : [{'headline': 'title'},{'headline': 'title'}] 
} 

查詢調用由這是在表中的列新聞來源分組一個表。

由新聞來源我的代碼組,但不使用新聞源作爲重點:

SELECT array_to_json(array_agg(stories)) FROM stories GROUP BY source 

返回:

{ 
    [{'headline': 'title'},{'headline': 'title'}], 
    [{'headline': 'title'},{'headline': 'title'}], 
    [{'headline': 'title'},{'headline': 'title'}] 
} 

是否有可能利用新聞源列作爲父鍵? 不確定如何使用PG子語法編寫此SQL查詢。

stories (
news_source, 
headline 
) 

回答

3

不要彙總完整的行,只有標題:

SELECT json_build_object(news_source, json_agg(headline)) 
FROM stories 
GROUP BY news_source 
ORDER BY news_source; 

在線例如:http://rextester.com/LUOUR61576

0

謝謝!

我稍微修改了您的工作代碼,以便爲每個組返回一組記錄,而不僅僅是一個字段。

SELECT json_build_object(source, json_agg(stories.*)) 
    FROM stories 
    GROUP BY source 
    ORDER BY source;