फ़ंक्शन jsonb_each_text() सबक्वेरी में कॉलम total_list_size . का कारण बनता है star_pu . में आइटमों की संख्या जितनी बार दोहराई जाती है , तो avg() एक उचित परिणाम दिखाता है।
एक total_list_size get पाने के लिए date . के लिए आप एक समानांतर सबक्वेरी का उपयोग कर सकते हैं जो स्वतंत्र रूप से मूल्य जमा करता है।
select *
from (
select date, json_object_agg(key, val) total_star_pu
from (
select date, key, sum(value::numeric) val
from frontend_practicelist, jsonb_each_text(star_pu)
group by date, key
) s
group by date
) s
join (
select date, sum(total_list_size) total_list_size
from frontend_practicelist
group by date
) t
using(date)
order by date;