Hive SQL: 使用窗口函数判断最近24小时内数据一致性
可以使用 LAG 函数来获取前一行数据的时间,然后判断时间差是否在 24 小时内,如果是则判断当前行数据与前一行数据是否一致。
示例代码如下:
SELECT
*,
CASE
WHEN DATEDIFF(hour, LAG(time, 1) OVER (ORDER BY time), time) <= 24
AND value = LAG(value, 1) OVER (ORDER BY time) THEN '一致'
ELSE '不一致'
END AS status
FROM
your_table;
其中,LAG(time, 1) OVER (ORDER BY time) 表示获取前一行的时间,DATEDIFF(hour, LAG(time, 1) OVER (ORDER BY time), time) 表示当前行时间与前一行时间的时间差(单位为小时),value = LAG(value, 1) OVER (ORDER BY time) 表示当前行数据与前一行数据是否一致。最后根据时间差和数据是否一致来判断状态。
原文地址: https://www.cveoy.top/t/topic/m1qk 著作权归作者所有。请勿转载和采集!