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 |
无需进行连接操作,仅排序即可