Вы также можете попробовать запрос ниже. Он группирует их в зависимости от диапазона.
Это поможет, даже если ваши значения не являются последовательными.
select min(id) as MinID, max(id) as MaxID, count(*) as cnt
from (select id,case when id between 1 and 9 then '1-9'
when id between 10 and 19 then '10-19'
--when id between 20 and 29 then '20-29' & so on
end as Grp from your_table) g
group by Grp
ПРОВЕРЬТЕ ДЕМО ЗДЕСЬ
Вы можете изменить регистр на основе вашей логики c для разбивки значений диапазона, т.е. 1-9
или 1-10