json - Postgres 返回带组的 json

标签 json postgresql

尝试获取结构如下的 JSON 响应:

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

查询调用按 news_source 分组的单个表,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 son 语法编写此 SQL 查询。

表格

stories (
 news_source,
 headline
)

最佳答案

不要聚合整行,只聚合标题:

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

在线示例:http://rextester.com/LUOUR61576

关于json - Postgres 返回带组的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45157438/

相关文章:

json - 无法访问以JSON中的POST AJAX方式从服务器发送的数据

jquery - 如何通过查询之类的 JSON 数组获取值

json - 如何将 JSON 数组中的所有键大写?

postgresql - 在 PostgreSQL 中进行 DROP 操作时避免对引用表的独占访问锁

javascript - 使用 angularjs 从 JSON 构建 map

android - 如何解析Xml包装的json

postgresql - 仅当目标表名不存在时如何重命名 postgres 表

sql - 将多行(查询结果)传递给函数

postgresql - 使用 SDBC 从 libreoffice base 连接到 PostgreSQL

node.js - 关于 Sequelize 数据库迁移的问题