根据您的解释,最后一个值应该4
不是5
。
使用lag()
和累积总和。假设datetime
列存储为date
:
select t.*,
sum(case when prev_datetime > datetime - interval '6' hour then 0 else 1 end) over
(order by datetime) as rank_index
from (select t.*,
lag(datetime) over (order by datetime) as prev_datetime
from t
) t;
注意:如果您希望每个key1
/key2
组合都使用它,那么您希望将其包含partition by key1, key2
在窗口规范中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句