您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用MySQL对连续范围进行分组

如何使用MySQL对连续范围进行分组

MysqL不支持解析功能,但是您可以使用用户定义的变量来模仿这种行为:

SELECT   CatID, Begin, MAX(Date) AS End, Rate
FROM (
  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 t
GROUP BY CatID, Begin, Rate

sqlfiddle上看到它。

MySQL 2022/1/1 18:17:06 有576人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶