选择最大连续记录

时间:2012-05-26 06:01:31

标签: mysql

我有以下格式的表格

-------------
| 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。

谢谢

1 个答案:

答案 0 :(得分: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;
相关问题