【发布时间】:2021-06-16 10:35:50
【问题描述】:
【问题讨论】:
-
用您正在使用的数据库标记您的问题。你的结果与样本数据有什么关系?它们似乎无关。
-
你的话与你的“输出”不一致。
标签: sql logic gaps-and-islands row-number
【问题讨论】:
标签: sql logic gaps-and-islands row-number
您可以通过对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;
我不知道你想如何总结这一点,但这解决了问题的“困难”部分。
【讨论】: