Sybase 12.7 Home Theater System User Manual


 
統計関数
86 Sybase IQ
•FLOOR:引数の値以下で、正の無限大に最も近い整数値を返します。
•CEILING:引数の値以上で、負の無限大に最も近い整数値を返します。CEIL
CEILING の同意語です。
WIDTH_BUCKET 関数
WIDTH_BUCKET 関数は、他の数値関数よりも少し複雑です。この関数は 4
の引数を取ります。具体的には、「目的の値」2 つの範囲境界、そしてこの範
囲を何個の等しいサイズ ( または可能な限り等しいサイズ ) の「バケット」に
分割するかを指定します。WIDTH_BUCKET 関数は、範囲の上限から下限ま
での差のパーセンテージに基づき、目的の値が何番目のバケットに含まれるか
を示す数値を返します。最初のバケットが、バケット番号 1 となります。
目的の値が範囲境界の外にある場合のエラーを避けるために、範囲の下限より
も小さい目的の値は、先頭の補助バケット ( バケット 0) に配置されます。同
様に、範囲の上限よりも大きい目的の値は、末尾の補助バケット ( バケット
N+1) に配置されます。
たとえば、WIDTH_BUCKET (14, 5, 30, 5) 2 を返します。処理の内容は次の
とおりです。
(30-5)/5 = 5 なので、指定の範囲を 5 つのバケットに分割すると、各バケッ
トの幅は 5 になります。
•1 つ目のバケットは 0.00 19.999 ...% の値、2 つ目のバケットは 20.00
39.999 ...% の値を表し、以降同様に続き、5 つ目のバケットは 80.00
100.00% の値を表します。
目的の値を含むバケットは、(5*(14-5)/(30-5)) + 1 という計算によって算出
されます。これは、バケットの総数に、指定範囲に対する「下限から目的
の値までのオフセット」の比率を掛け、それに 1 を足すという計算です。
実際の数式は (5*9/25) + 1 となり、これを計算すると 2.8 になります。こ
れはバケット番号 2 (2.0 2.999 ...) の範囲に含まれる値であるため、バ
ケット番号 2 が返されます。
WIDTH_BUCKET
次の例では、サンプル・テーブル内のマサチューセッツ州の顧客の credit_limit
カラムに関する 10 バケットのヒストグラムを作成し、各顧客のバケット番号
(“Credit Group”) を返します。最大値を超える限度額が設定されている顧客は、
オーバフロー・バケット 11 に割り当てられます。