Обновить timeBasedReport.sql
This commit is contained in:
+5
-2
@@ -1,5 +1,6 @@
|
|||||||
-- =============================================================================
|
-- =============================================================================
|
||||||
-- Отчет повременного учета работоспособности периферийного оборудования
|
-- Отчет повременного учета работоспособности периферийного оборудования
|
||||||
|
-- Период: май 2026
|
||||||
-- Исключены устройства, начинающиеся на IRZ
|
-- Исключены устройства, начинающиеся на IRZ
|
||||||
-- Тип оборудования берется из инвентаризации Zabbix (поле type)
|
-- Тип оборудования берется из инвентаризации Zabbix (поле type)
|
||||||
-- Координаты: широта + долгота из полей location_lat и location_lon
|
-- Координаты: широта + долгота из полей location_lat и location_lon
|
||||||
@@ -49,6 +50,8 @@ checks AS (
|
|||||||
-- Период: май 2026 года (измените под свои даты)
|
-- Период: май 2026 года (измените под свои даты)
|
||||||
--and hinv.notes = 'ОБЪЕКТ № 12'
|
--and hinv.notes = 'ОБЪЕКТ № 12'
|
||||||
--and hinv."name" = 'Видеокамера Trassir TR-D6254IR15'
|
--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)
|
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)
|
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')
|
--AND hx.clock >= EXTRACT(EPOCH FROM TIMESTAMP '2026-06-01 00:00:00')
|
||||||
@@ -63,11 +66,11 @@ checks_with_prev AS (
|
|||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
LAG(status) OVER (PARTITION BY host_name ORDER BY ts) AS prev_status,
|
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
|
FROM checks
|
||||||
),
|
),
|
||||||
|
|
||||||
-- 3. Определяем моменты смены статуса (начало нового интервала)
|
--3. Определяем моменты смены статуса (начало нового интервала)
|
||||||
status_changes AS (
|
status_changes AS (
|
||||||
SELECT
|
SELECT
|
||||||
host_name,
|
host_name,
|
||||||
|
|||||||
Reference in New Issue
Block a user