0

我有以下格式的表格

-------------
| id | item |
-------------
|1   | xxx  |
|1   | xxx  |
|1   | yyy  |
|1   | xxx  |
|1   | zzz  |
|1   | xxx  |
|1   | xxx  |
|1   | xxx  |
|1   | yyy  |
|1   | xxx  |
|1   | yyy  |
|1   | xxx  |
|1   | xxx  |
|1   | xxx  |
|1   | xxx  |
|1   | xxx  |
|1   | xxx  |
|-----------|

我需要计算项目 xxx 的最大连续值。上面的例子是6。

谢谢

4

1 回答 1

0
SET @last = NULL, @max = 0, @count = 0;

SELECT   @count := IF(item = @last, @count + 1, 0),
         @max   := GREATEST(@max, @count + 1),
         @last  := item
FROM     my_table
ORDER BY ...

SELECT @max;

SET @last = NULL, @max = NULL, @count = NULL;
于 2012-05-26T06:25:32.800 回答