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 に答える