Hive SQL 开窗函数:判断最近24小时数据一致性
假设数据表名为'table',包含字段为'id'、'value'、'time'。
以下是按时间做开窗函数,判断最近24小时内数据是否一致的 Hive SQL 语句:
SELECT
id,
value,
time,
COUNT(*) OVER (PARTITION BY id, value ORDER BY time RANGE BETWEEN 86400 PRECEDING AND CURRENT ROW) AS cnt
FROM table;
解释:以上 SQL 语句中,'PARTITION BY id, value' 表示按'id' 和 'value' 进行分组,'ORDER BY time' 表示按时间顺序进行排序,'RANGE BETWEEN 86400 PRECEDING AND CURRENT ROW' 表示选取最近 24 小时(86400 秒)内的数据进行计数。最终结果通过 'COUNT(*) OVER' 函数返回,'cnt' 表示最近 24 小时内相同 'id' 和 'value' 的数据数量。
如果 'cnt' 的值等于 1,则表示最近 24 小时内该 'id' 和 'value' 的数据只出现了一次,即数据一致。如果 'cnt' 的值大于 1,则表示最近 24 小时内该 'id' 和 'value' 的数据出现了多次,即数据不一致。
原文地址: https://www.cveoy.top/t/topic/m1qo 著作权归作者所有。请勿转载和采集!