Bạn có thể thử sử dụng WIDTH_BUCKET hàm số.
select bucket , count(name)
from (select name, spend,
WIDTH_BUCKET(spend, 0, 200, 4) bucket
from mytable
)
group by bucket
order by bucket;
Ở đây tôi đã chia phạm vi từ 0 đến 200 thành 4 nhóm. Và hàm chỉ định một số nhóm cho mỗi giá trị. Bạn có thể nhóm theo nhóm này và đếm xem có bao nhiêu sắp xếp lại trong mỗi nhóm.
Demo tại đây .
Bạn thậm chí có thể hiển thị phạm vi nhóm thực tế.
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;
Mẫu tại đây .