假设我有一个城市模型,它有一个邻域模型,其中包含家庭的jsonb[]字段,这是一个包含jsonb对象的数组,每个对象内部都有一个数据对象,其中包含计数和收入字段
ID | 数据 |
---|---|
123 | {城市":{社区"{家庭"计数:4,收入:700 |
456 | {城市":{社区"{家庭"1,"收入":7000}}]}} |
select
main.id,
max(main."count") as "count"
from
(
select
t1.id,
(jsonb_array_elements_text(t2.value::jsonb)::jsonb->'data'->'count')::integer as "count"
from table1 t1
join jsonb_each_text(t1."data"->'city'->'neighborhood') t2 on true
) main
group by main.id
此查询的结果:
id | 计数 |
---|---|
456 | 7 |
123 | 4 |