我目前有一个查询,每添加15分钟,新数据集就会运行一次。不幸的是,当查询最新的数据集时,最新的结果返回0。这不是问题,但是如果我对历史数据运行相同的查询,则会得到完全不同的结果集。
代码如下所示:
INSERT INTO node_states(node,site_id,module,logic_id,datetime)
SELECT NODE,
SITE_ID,
CASE when (lag(uncor_rate, 1) over (PARTITION BY site_id, node ORDER BY datetime desc)) >=2 and uncor_rate >= 2 then 1
when (lag(uncor_rate, 1) over (PARTITION BY site_id, node ORDER BY datetime desc)) >=2
and (lag(uncor_rate, 2) over (PARTITION BY site_id, node ORDER BY datetime desc)) >=2 then 1
when (lag(uncor_rate, 3) over (PARTITION BY site_id, node ORDER BY datetime desc)) >=2
and (lag(uncor_rate, 2) over (PARTITION BY site_id, node ORDER BY datetime desc)) >=2
and uncor_rate >= 2 then 1 else 0 END AS MODULE
11 AS LOGIC_ID,
DATETIME
from(
select * FROM PUBLIC.PATHTRAK_SUMMARY_24
WHERE TO_TIMESTAMP(DATETIME, 'YYYY-MM-DD HH24:MI') >= NOW() - INTERVAL '200 minutes'
order by site_id desc,node desc, datetime desc ) summary
ON CONFLICT ON CONSTRAINT node_states_site_id_node_datetime_key
do Nothing;
是什么导致最新的数据行返回不正确的值?
没关系。
我混淆了LAG和LEAD函数...