Как сгруппировать непрерывные диапазоны, используя MySQL

У меня есть таблица, которая содержит категории, даты и цены. Каждая категория может иметь разные тарифы на разные даты, одна категория может иметь только один курс на данную дату.

Id        CatId    Date        Rate 
------  ------   ------------   ---------
000001      12   2009-07-07     1
000002      12   2009-07-08     1
000003      12   2009-07-09     1
000004      12   2009-07-10     2
000005      12   2009-07-15     1
000006      12   2009-07-16     1
000007      13   2009-07-08     1
000008      13   2009-07-09     1
000009      14   2009-07-07     2
000010      14   2009-07-08     1
000010      14   2009-07-10     1

Уникальный индекс (catid, Date, Rate) Я хотел бы, чтобы каждая категория сгруппировала все непрерывные диапазоны дат и сохранила только начало и конец диапазона. Для предыдущего примера мы бы имели:

CatId    Begin          End            Rate 
------   ------------   ------------   ---------
12        2009-07-07    2009-07-09     1
12        2009-07-10    2009-07-10     2
12        2009-07-15    2009-07-16     1  
13        2009-07-08    2009-07-09     1  
14        2009-07-07    2009-07-07     2
14        2009-07-08    2009-07-08     1
14        2009-07-10    2009-07-10     1

Я нашел подобное решение вфорум который не совсем дал результат

WITH    q AS
        (
        SELECT  *,
                ROW_NUMBER() OVER (PARTITION BY CatId, Rate ORDER BY [Date]) AS rnd,
                ROW_NUMBER() OVER (PARTITION BY CatId ORDER BY [Date]) AS rn
        FROM    my_table
        )
SELECT  CatId AS catidd, MIN([Date]) as beginn, MAX([Date])as endd, Rate
FROM    q
GROUP BY  CatId, rnd - rn, Rate

УВИДЕТЬSQL FIDDLE Как я могу сделать то же самое в MySQL? Пожалуйста помоги!

Ответы на вопрос(3)

Ваш ответ на вопрос