use examples /* select * from dbo.salary order by customer_id */ declare @lin_interval bigint = 2000 declare @scale float = 20 select *, REPLICATE('*',floor(customers/@scale)) as dist from ( select floor(salary/@lin_interval)*@lin_interval as salary_linear, count(*) as customers from dbo.salary group by floor(salary/@lin_interval)*@lin_interval ) inc_linear order by salary_linear