问题:
现在有如下表
假设按时间顺序,记录中连续出现0.2 0.3 0.5 0.7四条记录记为一次有效数据组,统计一段时间范围内,有效数据组出现的次数,最终计算有效数据组在整个时间范围内的记录的占比。用mysql语句或者函数如何实现?
解答:
数据库增加辅助字段 sign, varchar 4位
思路分4步走:
- 按时间顺序筛选出 0.2 开始的记录
- 取随后的3条记录,依次判断是否为0.3,0.5,0.7 符合的话标志置为1,否则0
- 更新到0.2开始记录的sign字段中
- sql查询sign值为 1111的记录条数 即为符合要求的记录次数