使用SQL计算列中连续0的数目



我有一个包含以下数据的表:

样本数据

它具有平衡,包含0s1s。Required是连续0s的总数以及连续实例的计数,如下所示。

输出

您可以通过对1s进行累积求和,将分组分配给0s。剩下的是聚合。因此,对于0s的每个序列:

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;

我不确定你想如何总结这一点,但这解决了"硬";问题的一部分。

最新更新