You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL jsonb列按label汇总number值并排序的查询实现

PostgreSQL按JSONB字段分组求和并排序的实现方案

假设你的表名为your_table,存储JSON数据的jsonb列名为json_column,可以用以下SQL语句实现需求:

SELECT
  json_column->'data'->>'label' AS label,
  SUM((json_column->'data'->>'number')::integer) AS sum
FROM your_table
GROUP BY json_column->'data'->>'label'
ORDER BY sum DESC;

关键语法说明

  • ->>:PostgreSQL的jsonb操作符,用于提取JSON字段并转换为文本类型,这里用来获取data对象下的label字符串值。
  • (json_column->'data'->>'number')::integer:先提取number的文本值,再强制转换为整数类型,确保能正确执行求和运算。
  • GROUP BY:按照提取出的label字段分组,将相同label的记录聚合在一起。
  • SUM():对每个分组内的number值求和。
  • ORDER BY sum DESC:将最终结果按求和后的数值从高到低排序,符合你需要的输出顺序。

代入你提供的示例数据执行该查询,会得到与期望完全一致的输出结果。

内容的提问来源于stack exchange,提问作者0x55b1E06FF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:33:12