아래는 DW의 다차원 모델에서 fact의 구간대 모델 같은거에 쓰면 된다. 통계적인 부분까지 들어가면 이걸로는 안 된다. 히스토그램을 그려보고, 정규분포를 만들기 위해 로그변환 등을 해야 할 수도 있다. 중요한 것은 의미있게 자르는 것이다. 그냥 분포를 볼 목적이라면 구간을 크게 자른 것을 가지고 점점 파고 들어가는 방법(이게 분석이다!)을 사용하면 된다. 이는 아래의 솔루션으로 해결 가능하다.
;with samples
as
(
select 0 rowno
union all
select rowno + 1 from samples
where rowno + 1 <= 10000
)
select
convert(varchar(50), (rowno-1) / 1000 * 1000 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 1000 * 1000 + 1000) width
, convert(varchar(50), (rowno-1) / 500 * 500 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 500 * 500 + 500) width
, convert(varchar(50), (rowno-1) / 100 * 100 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 100 * 100 + 100) width
, convert(varchar(50), (rowno-1) / 50 * 50 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 50 * 50 + 50) width
, convert(varchar(50), (rowno-1) / 10 * 10 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 10 * 10 + 10) width
, convert(varchar(50), (rowno-1) / 5 * 5 + 1) + ' ~ ' + convert(varchar(50), (rowno-1) / 5 * 5 + 5) width
, rowno
from samples
option (maxrecursion 0)