假设有一个表 table_name,其中包含 idvaluetimestamp 三个字段。可以使用以下 Hive SQL 语句来按照时间做开窗函数,判断最近 24 小时内数据是否一致。

SELECT 
    id, 
    value, 
    timestamp, 
    COUNT(*) OVER (PARTITION BY id, value ORDER BY timestamp RANGE BETWEEN INTERVAL '24' HOURS PRECEDING AND CURRENT ROW) AS count_within_24_hours
FROM 
    table_name;

这个查询将在每个 idvalue 组内进行分区,并按照 timestamp 字段排序。然后,使用 RANGE BETWEEN INTERVAL '24' HOURS PRECEDING AND CURRENT ROW 子句将窗口设置为最近 24 小时内的所有行。最后,使用 COUNT(*) OVER 函数计算在该窗口内的行数,如果行数等于 1,则表示最近 24 小时内该 idvalue 组的数据一致,否则不一致。


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

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