的Postgres返回JSON与组
问题描述:
试图获取其构造这样的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
)
答
不要汇总完整的行,只有标题:
SELECT json_build_object(news_source, json_agg(headline))
FROM stories
GROUP BY news_source
ORDER BY news_source;
答
谢谢!
我稍微修改了您的工作代码,以便为每个组返回一组记录,而不仅仅是一个字段。
SELECT json_build_object(source, json_agg(stories.*))
FROM stories
GROUP BY source
ORDER BY source;