select '2023-06-30T18:30:00Z'::timestamp + '5 hr 30 min'::interval as sdate,
'2023-07-02T18:29:00Z'::timestamp + '5 hr 30 min'::interval as edate , (1) as p_psid ), child_ps_list as( select source_id from ems_private.power_source_table where source_id in ( select CHILD_POWER_SOURCE_ID from ems_private.POWER_SOURCE_LEVEL_MAPPING_TABLE where PARENT_POWER_SOURCE_ID = (select p_psid from config) ) ), received_schedule as( select log_time, (json_each_text(scheduled_power)).key, (json_each_text(scheduled_power)).value from ems_public.received_schedule where log_time >= (select sdate from config) and log_time < (select edate from config) ), final_data as( select log_time, case when key like '%_gss' then replace(key,'_gss','')::integer else key::integer end as power_source_id, key, case when key like '%_gss' then value::real else value::real end as sch_power from received_schedule where value != '' ), final_data1 as( select log_time, power_source_id, max(case when key like '%_gss' then sch_power * 0.95 else sch_power end) as sch_power from final_data group by 1,2 order by 1 ), sum_of_all_state as( select log_time, sum(sch_power) from final_data1 where power_source_id in (select source_id from child_ps_list) group by 1 ) select coalesce(avg(sum),0) from sum_of_all_state order by 1