SSブログ

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で処理すればいいじゃないというのはさておき。

スポンサードリンク




nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:仕事

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。