SQL Serverのテーブル内のデータでヒストグラムを作る [SQL Server]
業務でクエリを書く機会が少しずつ増えてきました。
AP開発ではなく、データの中がどうなっているのかを調べる系です。
今回は以下のようなテーブルで各値のレンジごとに何件あるか数えるクエリです。
いわゆるヒストグラムです。
http://ja.wikipedia.org/wiki/%E3%83%92%E3%82%B9%E3%83%88%E3%82%B0%E3%83%A9%E3%83%A0
ヒストグラム(幅を100とする)をクエリで出す方法です。
col1
---------------
78
126
156
231
…
select floor(col1/100)*100 as x, count(*)
from tbl1
group by floor(col1/100)*100
order by floor(col1/100)*100
こんな形で書くと
0 1
100 2
200 4
300 5
・・・
と各値の幅ごとの集計が得られます。
幅を変えるときにはクエリ内の100を適宜幅の数に変えてください。
テストはSQL Server 2012 Enterprise Editionで実施しました。
全データをExcelで処理すればいいじゃないというのはさておき。
スポンサードリンク
AP開発ではなく、データの中がどうなっているのかを調べる系です。
今回は以下のようなテーブルで各値のレンジごとに何件あるか数えるクエリです。
いわゆるヒストグラムです。
http://ja.wikipedia.org/wiki/%E3%83%92%E3%82%B9%E3%83%88%E3%82%B0%E3%83%A9%E3%83%A0
ヒストグラム(幅を100とする)をクエリで出す方法です。
col1
---------------
78
126
156
231
…
select floor(col1/100)*100 as x, count(*)
from tbl1
group by floor(col1/100)*100
order by floor(col1/100)*100
こんな形で書くと
0 1
100 2
200 4
300 5
・・・
と各値の幅ごとの集計が得られます。
幅を変えるときにはクエリ内の100を適宜幅の数に変えてください。
テストはSQL Server 2012 Enterprise Editionで実施しました。
スポンサードリンク
コメント 0