zoukankan      html  css  js  c++  java
  • mysql 统计连续天数

    以下为例子数据 图1

                                  图1

    首先根据要求取出BeforeMeal要在7.0以下 并且 bingAfterMeal要在11.1以下

    select AccountId,CreateTime from DiabetesRecord where BeforeMeal < 7.0 and AfterMeal < 11.1 group by AccountId,CreateTime

     得到以下数据如图2

                图2

    把连续的天数进行分组

    select *,((select count(1) from (select AccountId,CreateTime from DiabetesRecord where BeforeMeal < 7.0 and AfterMeal < 11.1 group by AccountId,CreateTime)dr2 where dr1.AccountId = dr2.AccountId and dr2.CreateTime <= dr1.CreateTime) - day(dr1.CreateTime)) as 'rownum' from (select AccountId,CreateTime from DiabetesRecord where BeforeMeal < 7.0 and AfterMeal < 11.1 group by AccountId,CreateTime)dr1

    结果如图3所示

                图3

    按用户 、开始时间、结束时间 和 连续天数分组

    select AccountId,min(CreateTime),max(CreateTime),(datediff(max(CreateTime),min(CreateTime))+1) as 'rn' from 
    (select *,((select count(1) from (select AccountId,CreateTime from DiabetesRecord where BeforeMeal < 7.0 and AfterMeal < 11.1 group by AccountId,CreateTime)dr2 where dr1.AccountId = dr2.AccountId and dr2.CreateTime <= dr1.CreateTime) - day(dr1.CreateTime)) as 'rownum' from (select AccountId,CreateTime from DiabetesRecord where BeforeMeal < 7.0 and AfterMeal < 11.1 group by AccountId,CreateTime)dr1)z group by AccountId,rownum

    得到如图4所示

                    图4




  • 相关阅读:
    慈不掌兵,义不行贾,烂好人难成大业!
    克服焦虑
    静态路由汇总(路由聚合)
    OSPF协议介绍及配置 (下)
    OSPF协议介绍及配置 (上)
    我为什么鼓励工程师写blog
    佛弟子有三样东西需要永远保密
    【交换机在江湖】第十三章 VLAN划分篇
    FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)
    Java 对象和类
  • 原文地址:https://www.cnblogs.com/ylqs/p/9396229.html
Copyright © 2011-2022 走看看