mysql 之 求连续出现的数字

mysql 之 求连续出现的数字

id num
1 1
2 1
3 1
4 2
5 1
6 2
7 2

题目:有结构如上的表tb,求连续出现次数大于2次的num
sql:

select distinct Num 
from(
    select Num,c,count(1)
    from(
        select Num,if(rn>Id,rn-Id,-(Id-rn)) as c
        from(
        select Id,
            Num,
            row_number() over(partition by key1 order by Num,Id) as rn
        from
        (
            select Id,Num, 1 as key1
            from Logs
        ) t
        )yu
    )t1
    group by Num,c
    having count(1)>=3
) t2;

结果:

num
1

无需进行连接操作,仅排序即可

猜你喜欢

转载自blog.csdn.net/javadocdoc/article/details/109102886
今日推荐