diff --git a/timeBasedReport.sql b/timeBasedReport.sql index b624fe4..e8b36a9 100644 --- a/timeBasedReport.sql +++ b/timeBasedReport.sql @@ -1,5 +1,6 @@ -- ============================================================================= -- Отчет повременного учета работоспособности периферийного оборудования +-- Период: май 2026 -- Исключены устройства, начинающиеся на IRZ -- Тип оборудования берется из инвентаризации Zabbix (поле type) -- Координаты: широта + долгота из полей location_lat и location_lon @@ -49,6 +50,8 @@ checks AS ( -- Период: май 2026 года (измените под свои даты) --and hinv.notes = 'ОБЪЕКТ № 12' --and hinv."name" = 'Видеокамера Trassir TR-D6254IR15' + --and hinv.notes = 'ОБЪЕКТ № 1' + --and hinv."name" = 'Детектор транспортных потоков CTfind DTM' and CAST(nullif(regexp_replace(hinv.notes, 'ОБЪЕКТ №\s*', '', 'g'),'') as INTEGER) between 1 and 85-- (44,77,43,54,27,48,12,49,65,9,60,35,38,1,51,41,53,84,8) --AND hx.clock >= EXTRACT(EPOCH FROM TIMESTAMP '2026-06-01 00:00:00') @@ -63,11 +66,11 @@ checks_with_prev AS ( SELECT *, LAG(status) OVER (PARTITION BY host_name ORDER BY ts) AS prev_status, - coalesce(lead(ts) OVER (PARTITION BY host_name ORDER BY ts), date_trunc('day', ts) + interval '1 day') AS next_ts + coalesce(lead(ts) OVER (PARTITION BY host_name ORDER BY ts), now()) AS next_ts FROM checks ), --- 3. Определяем моменты смены статуса (начало нового интервала) + --3. Определяем моменты смены статуса (начало нового интервала) status_changes AS ( SELECT host_name,