尝试获取结构如下的JSON响应:
{
'news_source_1' : [{'headline': 'title'},{'headline': 'title'}],
'news_source_2' : [{'headline': 'title'},{'headline': 'title'}],
'news_source_3' : [{'headline': 'title'},{'headline': 'title'}]
}
该查询调用由news_source分组的单个表,该表是表中的一列。
我的新闻来源的代码组,但不使用新闻来源作为关键:
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
)
答案 0 :(得分:5)
不要聚合整行,只有标题:
SELECT json_build_object(news_source, json_agg(headline))
FROM stories
GROUP BY news_source
ORDER BY news_source;
答案 1 :(得分:0)
谢谢!
我稍微修改了您的工作代码,以便每个组返回一组记录,而不只是一个字段。
SELECT json_build_object(source, json_agg(stories.*))
FROM stories
GROUP BY source
ORDER BY source;