Try this working sample in SQL Server TSQL
SET NOCOUNT ON GO WITH MyTable AS ( SELECT 00 as Id, 1 Value UNION ALL SELECT 05 , 2 UNION ALL SELECT 10 , 3 UNION ALL SELECT 15 , 1 UNION ALL SELECT 20 , 2 UNION ALL SELECT 25 , 3 UNION ALL SELECT 30 , 1 UNION ALL SELECT 35 , 2 UNION ALL SELECT 40 , 3 UNION ALL SELECT 45 , 1 UNION ALL SELECT 40 , 3 UNION ALL SELECT 45 , 1 UNION ALL SELECT 50 , 3 UNION ALL SELECT 55 , 1 UNION ALL SELECT 60 , 3 UNION ALL SELECT 65 , 1 UNION ALL SELECT 70 , 3 UNION ALL SELECT 75 , 1 UNION ALL SELECT 80 , 3 UNION ALL SELECT 85 , 1 UNION ALL SELECT 90 , 3 UNION ALL SELECT 95 , 1 UNION ALL SELECT 100 , 3 UNION ALL SELECT 105 , 1 UNION ALL SELECT 110 , 3 UNION ALL SELECT 115 , 1 Value ) SELECT Category, COUNT (*) CountIds FROM ( SELECT CASE WHEN Id BETWEEN 0 and 9 then '<10' WHEN Id BETWEEN 10 and 49 then '10-49' WHEN Id BETWEEN 50 and 99 then '50-99' WHEN Id > 99 then '>99' ELSE '0' END as Category FROM MyTable ) as A GROUP BY Category
This will give you the following result
Category CountIds -------- ----------- <10 2 >99 4 10-49 10 50-99 10
source share