WIDTH_BUCKETファンクションは、ある特定の式について、この式の値が評価後に式に割り当てられるバケット番号を返すファンクションです。
戻り値
INTEGER
構文
WIDTH_BUCKET (expr , min_value , max_value , num_buckets)
引数
ヒストグラムの作成対象となる式。この式は、数値または日時の値に評価される必要があります。exprがNAに評価される場合、式の戻り値はNAになります。
exprの許容範囲の最小の端点に解決される式。この式は、数値または日時の値に評価される必要があり、NAに評価されることはできません。
exprの許容範囲の最大の端点に解決される式。この式は、数値または日時の値に評価される必要があり、NAに評価されることはできません。
バケットの数を示す定数に解決される式。この式は、正のINTEGERに評価される必要があります。
注意
アンダーフロー・バケットとオーバーフロー・バケット
WIDTH_BUCKETは、(必要に応じて)0という番号の付いたアンダーフロー・バケットおよびnum_buckets+1という番号の付いたオーバーフロー・バケットも作成します。これらのバケットでは、min_value未満の値やmax_valueを超える値が処理され、端点の妥当性を確認するときに役立ちます。
等幅ヒストグラムの作成
WIDTH_BUCKETを使用すると、ヒストグラムの範囲が同一サイズのインターバルに分割される、等幅ヒストグラムを作成できます(等度数ヒストグラムを作成するNTILEと、このファンクションを比較してください)。理想的には、各バケットは実際の数値直線のクローズ/オープン・インターバルになります。たとえば、バケットを10.00と19.999...の間のスコアに割り当てると、10はこのインターバルに含まれ、20は除外されることを示すことができます。これは、(10, 20)と表記されることもあります。
例
例8-166 バケットが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