MySQL不支持解析功能,但是您可以使用用户定义的变量来模仿这种行为:
SELECt CatID, Begin, MAX(Date) AS End, RateFROM ( SELECt my_table.*,@f:=ConVERT( IF(@c<=>CatId AND @r<=>Rate AND DATEDIFF(Date, @d)=1, @f, Date), DATE) AS Begin,@c:=CatId, @d:=Date, @r:=Rate FROM my_table JOIN (SELECT @c:=NULL) AS init ORDER BY CatId, Rate, Date) AS tGROUP BY CatID, Begin, Rate
在sqlfiddle上看到它。



