计算行直到列中的值更改mysql

时间:2015-08-30 20:40:37

标签: mysql

所以我有一个表,其列具有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

1 个答案:

答案 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);