diff --git a/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_daily_space_energy_consumed_procedure.sql b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_daily_space_energy_consumed_procedure.sql new file mode 100644 index 0000000..1a127fa --- /dev/null +++ b/libs/common/src/sql/procedures/fact_space_energy_consumed/fact_daily_space_energy_consumed_procedure.sql @@ -0,0 +1,20 @@ +WITH params AS ( + SELECT + TO_DATE(NULLIF($1, ''), 'MM-YYYY') AS start_month, + string_to_array(NULLIF($2, ''), ',') AS device_ids +) + +SELECT + A.date, + SUM(A.energy_consumed_kW::numeric) AS total_energy_consumed_KW, + SUM(A.energy_consumed_A::numeric) AS total_energy_consumed_A, + SUM(A.energy_consumed_B::numeric) AS total_energy_consumed_B, + SUM(A.energy_consumed_C::numeric) AS total_energy_consumed_C +FROM public."power-clamp-energy-consumed-daily" AS A +JOIN public.device AS B + ON A.device_uuid::TEXT = B."uuid"::TEXT +JOIN params P ON TRUE +WHERE B."uuid"::TEXT = ANY(P.device_ids) + AND (P.start_month IS NULL OR date_trunc('month', A.date)= P.start_month) +GROUP BY A.date +ORDER BY A.date;