diff --git a/libs/common/src/sql/queries/fact_hourly_energy_consumed/fact_hourly_energy_consumed.sql b/libs/common/src/sql/queries/fact_hourly_energy_consumed/fact_hourly_energy_consumed.sql index 5b992de..c6dcf1d 100644 --- a/libs/common/src/sql/queries/fact_hourly_energy_consumed/fact_hourly_energy_consumed.sql +++ b/libs/common/src/sql/queries/fact_hourly_energy_consumed/fact_hourly_energy_consumed.sql @@ -23,6 +23,8 @@ total_energy AS ( AND (params.input_date IS NULL OR log.event_time::date >= params.input_date) AND (params.input_date IS NULL OR log.event_time::date <= params.input_date) AND (params.hour IS NULL OR EXTRACT(HOUR FROM log.event_time) = params.hour) + AND (params.event_month IS NULL OR log.event_month = params.event_month) + AND (params.event_year IS NULL OR log.event_year = params.event_year) GROUP BY 1,2,3,4,5 ), @@ -31,6 +33,8 @@ energy_phase_A AS ( log.device_id, log.event_time::date AS date, EXTRACT(HOUR FROM log.event_time) AS hour, + TO_CHAR(log.event_time, 'MM-YYYY') AS event_month, + EXTRACT(YEAR FROM log.event_time)::int AS event_year, MIN(log.value)::integer AS min_value, MAX(log.value)::integer AS max_value FROM "device-status-log" log, params @@ -39,7 +43,9 @@ energy_phase_A AS ( AND (params.input_date IS NULL OR log.event_time::date >= params.input_date) AND (params.input_date IS NULL OR log.event_time::date <= params.input_date) AND (params.hour IS NULL OR EXTRACT(HOUR FROM log.event_time) = params.hour) - GROUP BY 1,2,3 + AND (params.event_month IS NULL OR log.event_month = params.event_month) + AND (params.event_year IS NULL OR log.event_year = params.event_year) + GROUP BY 1,2,3,4,5 ), energy_phase_B AS ( @@ -47,6 +53,8 @@ energy_phase_B AS ( log.device_id, log.event_time::date AS date, EXTRACT(HOUR FROM log.event_time) AS hour, + TO_CHAR(log.event_time, 'MM-YYYY') AS event_month, + EXTRACT(YEAR FROM log.event_time)::int AS event_year, MIN(log.value)::integer AS min_value, MAX(log.value)::integer AS max_value FROM "device-status-log" log, params @@ -55,7 +63,9 @@ energy_phase_B AS ( AND (params.input_date IS NULL OR log.event_time::date >= params.input_date) AND (params.input_date IS NULL OR log.event_time::date <= params.input_date) AND (params.hour IS NULL OR EXTRACT(HOUR FROM log.event_time) = params.hour) - GROUP BY 1,2,3 + AND (params.event_month IS NULL OR log.event_month = params.event_month) + AND (params.event_year IS NULL OR log.event_year = params.event_year) + GROUP BY 1,2,3,4,5 ), energy_phase_C AS ( @@ -63,6 +73,8 @@ energy_phase_C AS ( log.device_id, log.event_time::date AS date, EXTRACT(HOUR FROM log.event_time) AS hour, + TO_CHAR(log.event_time, 'MM-YYYY') AS event_month, + EXTRACT(YEAR FROM log.event_time)::int AS event_year, MIN(log.value)::integer AS min_value, MAX(log.value)::integer AS max_value FROM "device-status-log" log, params @@ -71,7 +83,9 @@ energy_phase_C AS ( AND (params.input_date IS NULL OR log.event_time::date >= params.input_date) AND (params.input_date IS NULL OR log.event_time::date <= params.input_date) AND (params.hour IS NULL OR EXTRACT(HOUR FROM log.event_time) = params.hour) - GROUP BY 1,2,3 + AND (params.event_month IS NULL OR log.event_month = params.event_month) + AND (params.event_year IS NULL OR log.event_year = params.event_year) + GROUP BY 1,2,3,4,5 ) SELECT