第 4 章 OLAP の使用
逆分散統計関数では、WITHIN GROUP (ORDER BY) 句を指定する必要があり ます。次に例を示します。
PERCENTILE_CONT ( expression1 )
WITHIN GROUP ( ORDER BY expression2 [ ASC DESC ] )
expression1 の値には、numeric データ型の定数を、0 以上 1 以下の範囲で指定し ます。引数が NULL であれば、“wrong argument for percentile” エラーが返りま す。引数の値が 0 よりも小さいか、1 よりも大きい場合は、“data value out of range” エラーが返ります。
必須の ORDER BY には、パーセンタイル関数の実行の対象となる式と、各グ ループ内でのローのソート順を指定します。この ORDER BY 句は、WITHIN GROUP 句の内部でのみ使用するものであり、SELECT 文の ORDER BY とは 異なります。
WITHIN GROUP 句は、クエリの結果を並べ替えて、関数が結果を計算するた めのデータ・セットを形成します。
expression2 には、カラム参照を含む 1 つの式でソートを指定します。このソー ト式に、複数の式やランク付け統計関数、set 関数、またはサブクエリを指定 することはできません。
ASC と DESC のパラメータでは、昇順または降順の順序付けシーケンスを指 定します。昇順がデフォルトです。
逆分散統計関数は、サブクエリ、HAVING 句、ビュー、union で使用すること が可能です。逆分散統計関数は、分析を行わない単純な集合関数が使用される ところであれば、どこでも使用できます。逆分散統計関数は、データ・セット 内の NULL 値を無視します。
PERCENTILE_CONT 例 この例では、PERCENTILE_CONT 関数を使用して、 各地域の自動車販売の 10 番目のパーセンタイル値を求めます。次のような データ・セットを使用します。
sales | region | dealer_name |
900 | Northeast | Boston |
800 | Northeast | Worcester |
800 | Northeast | Providence |
700 | Northeast | Lowell |
540 | Northeast | Natick |
500 | Northeast | New Haven |
450 | Northeast | Hartford |
800 | Northwest | SF |
600 | Northwest | Seattle |
500 | Northwest | Portland |
400 | Northwest | Dublin |
500 | South | Houston |
400 | South | Austin |
300 | South | Dallas |
200 | South | Dover |
パフォーマンス&チューニング・ガイド | 83 |