From fe891030aad1e24f6412d4fa0b9fb34189037252 Mon Sep 17 00:00:00 2001 From: Dona Maria Absi <49731027+DonaAbsi@users.noreply.github.com> Date: Thu, 22 May 2025 13:10:05 +0300 Subject: [PATCH] input year, output month --- ...e_select_fact_monthly_device_occupancy.sql | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 libs/common/src/sql/procedures/fact_device_occupancy_count/procedure_select_fact_monthly_device_occupancy.sql diff --git a/libs/common/src/sql/procedures/fact_device_occupancy_count/procedure_select_fact_monthly_device_occupancy.sql b/libs/common/src/sql/procedures/fact_device_occupancy_count/procedure_select_fact_monthly_device_occupancy.sql new file mode 100644 index 0000000..ad1481f --- /dev/null +++ b/libs/common/src/sql/procedures/fact_device_occupancy_count/procedure_select_fact_monthly_device_occupancy.sql @@ -0,0 +1,21 @@ +WITH params AS ( + SELECT + TO_DATE(NULLIF($2, ''), 'YYYY') AS year, + string_to_array(NULLIF($4, ''), ',') AS device_ids +) + +SELECT + A.device_uuid, + TO_CHAR(date_trunc('month', A.event_date), 'YYYY-MM') AS event_month, + SUM(A.count_motion_detected) AS total_motion_detected, + SUM(A.count_presence_detected) AS total_presence_detected, + SUM(A.count_total_presence_detected) AS total_overall_presence +FROM public."presence-sensor-daily-device-detection" AS A +JOIN params P ON TRUE +WHERE A.device_uuid::text = ANY(P.device_ids) + AND ( + P.year IS NULL + OR date_trunc('year', A.event_date) = P.year + ) +GROUP BY 1,2 +ORDER BY 1,2;