mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 18:27:05 +00:00
edit procedure
This commit is contained in:
@ -17,4 +17,5 @@ JOIN params P ON TRUE
|
|||||||
WHERE B."uuid"::TEXT = ANY(P.device_ids)
|
WHERE B."uuid"::TEXT = ANY(P.device_ids)
|
||||||
AND (P.start_date IS NULL OR A.date >= P.start_date)
|
AND (P.start_date IS NULL OR A.date >= P.start_date)
|
||||||
AND (P.end_date IS NULL OR A.date <= P.end_date)
|
AND (P.end_date IS NULL OR A.date <= P.end_date)
|
||||||
GROUP BY 1;
|
GROUP BY 1
|
||||||
|
|
||||||
|
@ -1,14 +1,43 @@
|
|||||||
|
-- will return the presence metrics for the days of the selected month
|
||||||
WITH params AS (
|
WITH params AS (
|
||||||
SELECT
|
SELECT
|
||||||
TO_DATE(NULLIF($2, ''), 'YYYY-MM-DD') AS event_date,
|
TO_DATE(NULLIF($2, ''), 'YYYY-MM') AS month,
|
||||||
string_to_array(NULLIF($4, ''), ',') AS device_ids
|
string_to_array(NULLIF($4, ''), ',') AS device_ids
|
||||||
)
|
)
|
||||||
|
|
||||||
SELECT A.*
|
, final_data AS (
|
||||||
|
SELECT
|
||||||
|
A.device_uuid,
|
||||||
|
A.event_date,
|
||||||
|
A.count_motion_detected,
|
||||||
|
A.count_presence_detected,
|
||||||
|
A.count_total_presence_detected
|
||||||
FROM public."presence-sensor-daily-detection" AS A
|
FROM public."presence-sensor-daily-detection" AS A
|
||||||
JOIN params P ON TRUE
|
JOIN params P ON TRUE
|
||||||
WHERE A.device_uuid::text = ANY(P.device_ids)
|
WHERE A.device_uuid::text = ANY(P.device_ids)
|
||||||
AND (
|
AND (-
|
||||||
P.event_date IS NULL OR A.event_date = P.event_date OR A.event_date IS NULL
|
P.month IS NULL
|
||||||
|
OR date_trunc('month', A.event_date) = P.month
|
||||||
)
|
)
|
||||||
order by A.device_uuid, A.event_date ;
|
)
|
||||||
|
|
||||||
|
INSERT INTO public."presence-sensor-daily-detection" (
|
||||||
|
device_uuid,
|
||||||
|
event_date,
|
||||||
|
count_motion_detected,
|
||||||
|
count_presence_detected,
|
||||||
|
count_total_presence_detected
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
device_uuid,
|
||||||
|
event_date,
|
||||||
|
count_motion_detected,
|
||||||
|
count_presence_detected,
|
||||||
|
count_total_presence_detected
|
||||||
|
FROM final_data
|
||||||
|
ON CONFLICT (device_uuid, event_date) DO UPDATE
|
||||||
|
SET
|
||||||
|
count_motion_detected = EXCLUDED.count_motion_detected,
|
||||||
|
count_presence_detected = EXCLUDED.count_presence_detected,
|
||||||
|
count_total_presence_detected = EXCLUDED.count_total_presence_detected;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user