我如何使用 sql 到 select 这个

How do I use sql to select this

我有以下数据:

我不知道如何用一句话来查询位置为2.the时的连续值(one = 1)结果应该是这样的:

maxCount

   3

如果要对它们求和,请使用 SUM 函数。

SELECT SUM(one) FROM table WHERE position = 2;

否则,如果只是计数,请使用 COUNT 函数。

SELECT COUNT(*) FROM table WHERE position = 2 AND one = 1

如果您想要 运行 计数,请在您的程序中进行,您要求数据库做一些真正属于您加载这些记录的循环。

你应该在OP中详细说明你的逻辑,而不是上面的评论,这样会更好,你可以在这里尝试关注sql并检查它是否是你想要的:

SELECT
    MAX(@cnt := CASE WHEN one = 1 THEN  @cnt + 1 ELSE 0 END) AS maxCount
FROM yourtable
CROSS JOIN ( SELECT @cnt := 0 ) t
WHERE `position` = 2
ORDER BY id

您也可以查看 SQLFiddle Demo