我有一張像這樣的桌子
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}
預期的
1 {"total":20,"healthy": 6,"unhealthy":8,"X":16}
2 {"total":7,"healthy": 5}
我想對 JSON 中的值進行分組和總結。我嘗試使用 JSONB_OBJ_AGG 我知道如何讓它與硬編碼一起作業。但我的問題是鍵的數量可以是 6-9。我無法對 SQL 中的鍵進行硬編碼。
uj5u.com熱心網友回復:
您可以使用這樣的jsonb_object_agg函式來獲取所有鍵的總和,而無需宣告它們:
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中的演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467476.html
標籤:PostgreSQL jsonb
