假设数据表为 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/m1p5 著作权归作者所有。请勿转载和采集!

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