Hàm jsonb_each_text()
trong truy vấn con gây ra cột total_list_size
được sao chép nhiều lần với số lượng mục trong star_pu
, vì vậy avg()
hiển thị một kết quả thích hợp.
Để nhận một total_list_size
cho một date
bạn có thể sử dụng một truy vấn con song song tích lũy giá trị một cách độc lập.
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;