drop table if exists t0,t1;
create table t0(a int primary key);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
create table t1(
pk int,
a int,
key(pk)
);
insert into t1
select 
A.a + B.a* 10 + C.a * 100,
1
from t0 A, t0 B, t0 C;
select 
pk,
count(a) over (order by pk rows between 2 preceding and 2 following)
from t1
where pk between 1 and 30
order by pk desc
limit 4;
pk	count(a) over (order by pk rows between 2 preceding and 2 following)
30	3
29	4
28	5
27	5
drop table t0,t1;