Можете да опитате да използвате WIDTH_BUCKET функция.
select bucket , count(name)
from (select name, spend,
WIDTH_BUCKET(spend, 0, 200, 4) bucket
from mytable
)
group by bucket
order by bucket;
Тук разделих диапазона от 0 до 200 на 4 кофи. И функцията присвоява номер на кофа на всяка стойност. Можете да групирате по тази кофа и да преброите колко записа попадат във всяка кофа.
Демо тук .
Можете дори да покажете действителния обхват на кофата.
select bucket,
cast(min_value + ((bucket-1) * (max_value-min_value)/buckets) as varchar2(10))
||'-'
||cast(min_value + ((bucket) * (max_value-min_value)/buckets) as varchar2(10)),
count(name) c
from (select name,
spend,
WIDTH_BUCKET(spend, min_value, max_value, buckets) bucket
from mytable)
group by bucket
order by bucket;
Примерен тук .