我正在寻找一个查询,它将根据一个条件计算排名,如下所示:
“排名指数”是我正在寻找的计算方法--如果上一次时间和当前时间之间的差异小于6小时,那么计数器应该保持不变。如果超过6小时,则将索引提升1。
有什么想法吗?
发布于 2021-03-01 06:33:13
根据您的解释,最后一个值应该是
注释
..。
使用
和累积总和。假设
列存储为
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;
注意:如果您想为每个
/
组合,那么您想要包含
在窗口规格中。
https://stackoverflow.com/questions/66414513
复制相似问题