2012-05-26 104 views
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

什麼定義它們的順序?在您指定任何訂單條件之前,不可能討論有序集合 – zerkms

回答

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;