ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

WIDTH_BUCKET

WIDTH_BUCKETファンクションは、ある特定の式について、この式の値が評価後に式に割り当てられるバケット番号を返すファンクションです。

戻り値

INTEGER

構文

WIDTH_BUCKET (expr , min_value , max_value , num_buckets)

パラメータ

expr

ヒストグラムの作成対象となる式。この式は、数値または日時の値に評価される必要があります。exprNAに評価される場合、式の戻り値はNAになります。

min_value

exprの許容範囲の最小の端点に解決される式。この式は、数値または日時の値に評価される必要があり、NAに評価されることはできません

max_value

exprの許容範囲の最大の端点に解決される式。この式は、数値または日時の値に評価される必要があり、NAに評価されることはできません

num_buckets

バケットの数を示す定数に解決される式。この式は、正のINTEGERに評価される必要があります。

使用上の注意

アンダーフロー・バケットとオーバーフロー・バケット

WIDTH_BUCKETは、(必要に応じて)0という番号の付いたアンダーフロー・バケットおよびnum_buckets+1という番号の付いたオーバーフロー・バケットも作成します。これらのバケットではmin_value未満の値やmax_valueを超える値が処理され、端点の妥当性を確認するときに役立ちます。

等幅ヒストグラムの作成

WIDTH_BUCKETを使用すると、ヒストグラムの範囲が同一サイズのインターバルに分割される、等幅ヒストグラムを作成できます(等度数ヒストグラムを作成するNTILEと、このファンクションを比較してください)。(等度数ヒストグラムを作成するNTILEとこのファンクションを比較してください。)理想的には、各バケットは実数直線のクローズ/オープン・インターバルです。たとえば、バケットを10.0019.999...の間のスコアに割り当てると、10はこのインターバルに含まれ、20は除外されることを示すことができます。このサイズのバケットは、(10, 20)と表記されることもあります。

例8-168 バケットが10個のヒストグラムへの値のグループ化

次の例では、customer_idが825から853までの顧客に制限し、これらの顧客に対応するcredit_limit変数を対象に、バケットが10個のヒストグラムを作成します。各顧客のバケット番号の計算には、credit_group式を使用します。与信限度額が最大値を超える顧客には、オーバーフロー・バケットの11が割り当てられます。

DESCRIBE
DEFINE customer_id DIMENSION INTEGER
DEFINE cust_last_name VARIABLE TEXT <customer_id>
DEFINE credit_limit VARIABLE INTEGER <customer_id>
DEFINE credit_group FORMULA INTEGER <customer_id> 
EQ WIDTH_BUCKET(credit_limit, 100, 5000, 10)

LIMIT customer_id to 825 TO 853
REPORT cust_last_name, credit_limit, credit_group

CUSTOMER_ID     CUST_LAST_NAME    CREDIT_LIMIT     CREDIT_GROUP
-------------- ---------------- ---------------- ----------------
           825 Dreyfuss                      500                1
           826 Barkin                        500                1
           827 Siegel                        500                1
           828 Minnelli                    2,300                5
           829 Hunter                      2,300                5
           830 Dutt                        3,500                7
           831 Bel Geddes                  3,500                7
           832 Spacek                      3,500                7
           833 Moranis                     3,500                7
           834 Idle                        3,500                7
           835 Eastwood                    1,200                3
           836 Berenger                    1,200                3
           837 Stanton                     1,200                3
           838 Nicholson                   3,500                7
           839 Johnson                     3,500                7
           840 Elliott                     1,400                3
           841 Boyer                       1,400                3
           842 Stern                       1,400                3
           843 Oates                         700                2
           844 Julius                        700                2
           845 Fawcett                     5,000               11
           846 Brando                      5,000               11
           847 Streep                      5,000               11
           848 Olmos                       1,800                4
           849 Kaurusmdki                  1,800                4
           850 Finney                      2,300                5
           851 Brown                       2,300                5
           852 Tanner                      2,300                5
           853 Palin                         400                1