所以我有一个表,其列具有true或false(0或1)值。我想知道在我达到1之前连续0的计数。所以例如,如果我有以下时间ASC:
0
0
1
0
1
0
0
0
最后连续0的返回数字是3.我一直在寻找一种计算方法,直到值发生变化,但到目前为止还没有运气。有什么想法吗?
编辑:
这是我的表格的更清晰的例子
|id|counter|user_id|
--------------------
|0 |0 |3 |
--------------------
|1 |0 |3 |
--------------------
|2 |1 |3 |
--------------------
|3 |0 |3 |
--------------------
|4 |1 |3 |
--------------------
|5 |0 |3 |
--------------------
|6 |1 |8 |
--------------------
|7 |0 |3 |
--------------------
|8 |0 |3 |
--------------------
对于user_id = 3,结果为3
答案 0 :(得分:0)
您的time
列似乎指定了排序。那么最后的零数将是:
select count(*)
from table t
where t.col = 0 and
t.time > (select max(t2.time) from table t2 where t2.col = 1);