mysql查找连续出现n次以上的数

本文介绍两种使用SQL查询连续重复数值的方法。一种是通过三表关联查询找出连续重复的数值,另一种是利用自定义变量进行分组,将连续的值分到同一组,通过group by分组找出连续重复超过三次的数值。

在这里插入图片描述
id连续的,因此三表关联查询

select distinct(l1.num) as ConsecutiveNums  
from Logs l1,Logs l2,Logs l3
where 
l1.id=l2.id-1 and l1.id=l3.id-2 
and l1.num=l2.num and l1.num =l3.num

方法二,利用自定义变量进行分组 ,将连续的值都分到一个组里面,然后就可以group by 分组找出来了 。


select  distinct(num) as ConsecutiveNums from 
(
select id,num,
if(@lastNum!=num,@group:=@group+1,@group) as g,
if(@lastNum!=num,@lastNum:=num,@lastNum) as c  from 
(select id,num from Logs )a,
(select @lastNum:=0,@group:=0 )b  
) m group by g  having count(1)>=3  order by id 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值