Got it Thanks.
DECLARE @query_string as NVARCHAR(MAX),
@cols as NVARCHAR(MAX)
with data
as (
select top 21 (row_number() over(order by (select null))-1)*0.5 as rnk
from master..spt_values
)
,cols_data
as(
select ',count(case when abs(a.col_a)>='+cast(rnk as varchar(10)) +' then 1 end) +...