mirror of
https://github.com/SyncrowIOT/backend.git
synced 2025-07-15 02:15:21 +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)
|
||||
AND (P.start_date IS NULL OR A.date >= P.start_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 (
|
||||
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
|
||||
)
|
||||
|
||||
SELECT A.*
|
||||
FROM public."presence-sensor-daily-detection" AS A
|
||||
JOIN params P ON TRUE
|
||||
WHERE A.device_uuid::text = ANY(P.device_ids)
|
||||
AND (
|
||||
P.event_date IS NULL OR A.event_date = P.event_date OR A.event_date IS NULL
|
||||
)
|
||||
order by A.device_uuid, A.event_date ;
|
||||
, 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
|
||||
JOIN params P ON TRUE
|
||||
WHERE A.device_uuid::text = ANY(P.device_ids)
|
||||
AND (-
|
||||
P.month IS NULL
|
||||
OR date_trunc('month', A.event_date) = P.month
|
||||
)
|
||||
)
|
||||
|
||||
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