फ़ंक्शन का उपयोग करें jsonb_array_elements()
एक पार्श्व में से खंड में शामिल हों:
select cname, sum(coalesce(value, '0')::int) as value
from (
select
p06->>'cname' as cname,
value->>'progress' as value
from ryzom_characters
cross join jsonb_array_elements(p06->'rpjobs')
where cid = 675010
) s
group by cname
order by value desc
limit 50;
क्वेरी को असंगत डेटा से बचाने के लिए आप क्रॉस जॉइन के बजाय लेफ्ट जॉइन का उपयोग कर सकते हैं:
left join jsonb_array_elements(p06->'rpjobs')
on jsonb_typeof(p06->'rpjobs') = 'array'
where p06->'rpjobs' <> 'null'