方法一:id和排序差的思想(极其推荐)
select distinct num as ConsecutiveNums from
(select num,id-cast(dense_rank() over (partition by num order by id asc) as signed) as rn from logs) t1
group by rn,num
having count(*)>=3
方法二:lead(一般推荐)
select distinct num as ConsecutiveNums
from(
select id,num,lead(num,1) over(order by id) as a,lead(num,2) over(order by id) as b
from `logs`
) t
where num=a and a=b
方法三:自连接(不推荐)
select distinct
l1.Num AS ConsecutiveNums
from
Logs l1,
Logs l2,
Logs l3
where
l1.Id = l2.Id - 1
AND l2.Id = l3.Id - 1
AND l1.Num = l2.Num
AND l2.Num = l3.Num
;