首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有组的复杂JSON B聚合

具有组的复杂JSON B聚合
EN

Stack Overflow用户
提问于 2022-04-28 08:18:17
回答 1查看 147关注 0票数 0

我有一张这样的桌子

代码语言:javascript
复制
STUDENT             JSONB Column 
1                    {"total":8,"healthy": 2,"unhealthy":5,"X":7}                  
1                    {"total":12,"healthy": 4"unhealthy":3,"X":9}    
2                    {"total":3,"healthy": 4}  
2                    {"total":4,"healthy": 1}  

期望的

代码语言:javascript
复制
1                    {"total":20,"healthy": 6,"unhealthy":8,"X":16}    
2                    {"total":7,"healthy": 5}  

我想按JSON中的值进行分组并对其进行汇总。我试着使用JSONB_OBJ_AGG,我知道如何让它与硬编码一起工作。但我的问题是钥匙的编号可以是6-9。我无法对SQL中的键进行硬编码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 09:38:53

您可以像这样使用jsonb_object_agg函数来获得所有键的和,而不需要声明它们:

代码语言:javascript
复制
select id,  jsonb_object_agg(key, sum)  from
(
    select   id, key, sum(value::int)
    from my_table 
    cross join jsonb_each_text(content)
    group by id, key
) tmp_each group by id

DBfiddle中的演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72040257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档