查询连续出现的数字次数为3的num
作者:互联网
#连续出现的数字次数3
Mysql
#变量使用方式 @pre :=赋值
select Num,
case
when @prev = Num then @count := @count + 1
when (@prev := Num) is not null then @count := 1
end as CNT
from Log
#解析:
id num
1 1
2 1
3 1
4 2
5 1
6 2
7 2
## 数据库查询方式一次查询多条,case when 中从第一条开始判断,直到结束
1.case when 中的顺序问题: 满足第一个条件时直接退出 否则继续查询是否满足第二条件
2.当查询时,先执行第一个when ,@prev=num 表示@prev 是否等于num ,等于时 计数加+1
3.第二个when,当前面满足@prev 不等于num ,则将num 赋值给@prev 且不为空,表示 如果num为空 跳过 , 那么计数@count 赋值1 重新计数
标签:count,case,when,查询,次数,num,prev 来源: https://www.cnblogs.com/yubaluquba/p/16411797.html