トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
3-14 Width_Bucket関数
SQLパズル
WidthTable
Score
-----
200
350
450
500
650
850
1200
Scoreの最大値から最小値までを10分割した、等幅ヒストグラムを作成する。
出力結果
Score Val FWH
----- --- ---------------------
200 1 ●
350 2 ●●
450 3 ●●●
500 3 ●●●
650 5 ●●●●●
850 6 ●●●●●●
1200 10 ●●●●●●●●●●
データ作成スクリプト
create table WidthTable(Score) as
select 200 from dual union
select 350 from dual union
select 450 from dual union
select 500 from dual union
select 650 from dual union
select 850 from dual union
select 1200 from dual;
SQL
col FWH for a24
select Score,Val,Lpad(' ',(Val+1)*2,'●') as FWH
from (select Score,
Width_Bucket(Score,min(Score) over(),max(Score) over(),9) as Val
from WidthTable);
解説
Width_Bucket関数を使うと、等幅ヒストグラムを作成できます。
100点満点のテストを5点刻みといった要件で使えるかもしれませんね。
マニュアル Width_Bucket
マニュアル Width_Bucket(英語)