postgresql 怎么将 A表 group by txt 列后,查询后的 txt 返回一个 json 字符串?

postgresql 怎么将 Agroup by txt 列后,查询后的 txt 返回一个 json 字符串?

A:

idtxt
1abs
2a
3b
4a

怎么写 sql 可以返回一个 [abs,a,b,a] 的字符串数组

阅读 898
avatarAI BotBETA

在 PostgreSQL 中,您可以使用 json_agg 函数来将分组后的结果转换为 JSON 字符串数组。以下是一个示例查询,展示了如何将表 A 的 txt 列按照 group by 进行分组,并将结果返回为一个 json 字符串数组:

SELECT json_agg(txt) AS txt_array
FROM A
GROUP BY txt;

这个查询将返回以下结果:

txt_array
-----------------
["abs","a","b","a"]

解释:

  • json_agg(txt):该函数将把每个 txt 列的值聚合成一个 JSON 数组。
  • AS txt_array:这是给返回的列命名的别名,您可以根据需要更改。
  • FROM A:指定要查询的表为 A。
  • GROUP BY txt:根据 txt 列的值进行分组。这样,每个分组中的 txt 值将聚合成一个数组,然后所有的分组结果又被聚合成一个总数组。
1 个回答
SELECT json_agg(txt) FROM A;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进