假设数据表为table,其中包含时间列time和需要判断的数据列data,可以按照如下方式使用开窗函数判断最近24小时内数据是否一致:

SELECT time, data,
CASE WHEN COUNT(DISTINCT data) OVER (ORDER BY time ROWS BETWEEN 23 PRECEDING AND CURRENT ROW) = 1
THEN 'consistent'
ELSE 'inconsistent'
END AS result
FROM table
WHERE time >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
ORDER BY time;

在这个查询中,使用了COUNT(DISTINCT data) OVER (ORDER BY time ROWS BETWEEN 23 PRECEDING AND CURRENT ROW)来计算最近24小时内数据列data的不同值数量,如果数量为1,说明数据一致,否则为不一致。使用CASE语句将结果转化为consistent或inconsistent。WHERE子句限制了时间范围为最近24小时。


原文地址: https://www.cveoy.top/t/topic/bxsF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录