我有一个包含以下数据的表:
样本数据
它具有平衡,包含0s和1s。Required是连续0s的总数以及连续实例的计数,如下所示。
输出
您可以通过对1
s进行累积求和,将分组分配给0
s。剩下的是聚合。因此,对于0
s的每个序列:
select min(dt), max(dt), count(*)
from (select t.*,
sum(bal) over (order by dt) as grp
from t
) t
where bal = 0
group by grp;
我不确定你想如何总结这一点,但这解决了"硬";问题的一部分。