構文
RANK(expression method [attributes] [BASEDON dimension-list])
attributesは、次のいずれか1つ以上です。
パラメータ
ランキングが計算される数式。
expressionの中の値のランクを計算するときに使用するメソッド。method引数は、次のキーワードのいずれかです。「メソッド値の結果」も参照してください。
表8-11 RANK計算のためのメソッド
メソッド | 説明 |
---|---|
MIN |
等しい値が複数存在する場合、同一の最小ランクが付けられる。 |
MAX |
等しい値が複数存在する場合、同一の最大ランクが付けられる。 |
AVERAGE |
等しい値が複数存在する場合、同一の平均ランクが付けられる。 |
PACKED |
等しい値が複数存在する場合、同一のランクが付けられるが、結果は連続 |
UNIQUE |
すべての値に一意のランクが付けられる。等しい値が複数存在する場合、ランクは不定。 |
PERCENTILE |
式の中における値の出現の相対度数に応じて、1から100までのランクが付けられる。 |
DECILE |
式の中における値の相対度数に応じて、1から10までのランクが付けられる。 |
QUARTILE |
式の中における値の出現の相対度数に応じて、1から4までのランクが付けられる。 |
ループ文内(代入文など)のRANKの計算方法を変更します。
RESETを指定しない場合、各グループのメンバーのランクが計算されるのは1回のみで、ランク付けされたこれらの値はキャッシュに格納されます。ループ文の実行が繰り返され、同じ値セットに対してRANKが実行されると、RANKの戻り値にはキャッシュされた値が使用されます。
RESETを指定した場合、ループ文内のRANKは実行時に毎回再計算されます。その結果、RANKを含むループ文の実行にかかる時間が大幅に増加します。
ループ文の実行時にいずれかのグループ内のメンバーのランクが変わることがわかっている場合を除き、ループ文内のRANKに対してRESETは指定しません。
値をランク付けする前に、すべてのNA値が正の最大小数か(10**308)
に変換されます。
注意: NAFIRSTまたはNALISTのいずれかを指定しないかぎり、NAの式値によってNAランクが生成されます。 |
値をランク付けする前に、すべてのNA値が負の最大小数か-(10**308)
に変換されます。
注意: NAFIRSTまたはNALISTのいずれかを指定しないかぎり、NAの式値によってNAランクが生成されます。 |
RANKの計算時に使用されるディメンションのステータスを指定します。LIMITSAVEはCHGDIMSで指定するのではなく、RANKファンクション内で指定することによって、RANKで新しい結果を計算する必要がある場合に、一度のみステータスを評価できます。
RANKの実行時に、ディメンション・ステータスの判別に使用されるディメンション値。limit-expression引数には、値セット、LIMITファンクションまたはSORTファンクションなど、あらゆる式を指定できます。
同じランクの値を順序付けする方法を指定します。
値セット、LIMITファンクションまたはSORTファンクションなど、あらゆる式を指定できます。Oracle OLAPは、指定された順序でtiebreaker-expressionを実行します。各tiebreaker-expressionのディメンションのステータスは、LIMITSAVE句で指定したステータス(指定した場合)か、ディメンションの現在のステータスとなります。
注意: tiebreaker-expressionの値セットを指定すると、Oracle OLAPは、-(STATRANK)の順序でランク付けされた項目を返します。 |
ランキングに含めるexpressionの1つ以上のディメンションのオプション・リスト。ディメンションを指定しなかった場合、expressionのすべてのディメンションがランキングの基準になります。
注意: BASEDONディメンションの現在の値がランキング・ステータスにない場合、NA のランクが返されます。 |
使用上の注意
RANKの動作の監視
OLAP DMLには、RANKファンクションの動作を監視するために使用できるオプション(RANK_CALLS、RANK_CELLSおよびRANK_SORTS)があります。
RANK_CALLS: RANK_CALLSオプションはINTEGER
の読取り専用のオプションです。このオプションは、Oracle OLAPがRANKファンクションに対して行ったコール数を保持します。
RANK_CELLS: RANK_CELLSオプションはINTEGER
の読取り専用のオプションです。このオプションはRANKファンクションの実行時に計算された値の数を保持します。
RANK_SORTS: RANK_SORTSオプションは、RANKファンクションの実行によってトリガーされたソートの数を保持する読み取り専用のオプションです。
メソッド値の結果
ここでは、値をランク付けする各種メソッドの結果について説明します。これらの結果は、次の文に示すsales2
変数(「値のランク付け」を参照)およびgeography
ディメンション(G2
に制限)に基づいています。
LIMIT geography TO 'G2' SORT items D sales2 REPORT DOWN geography sales2
この文によって生成される出力は、次のとおりです。
------------------------SALES2------------------------ ------------------------ITEMS------------------------- GEOGRAPHY ITEM4 ITEM2 ITEM3 ITEM1 ITEM5 -------------- ---------- ---------- ---------- ---------- ---------- G2 25.00 20.00 20.00 15.00 7.00
表8-12「各種メソッドによるランク付けの結果」は、次の形式の文によってランクを生成する各種メソッドの結果を示しています。
REPORT DOWN geography RANK(sales2 MIN BASEDON items)
さらに、MINを他のmethodキーワードで置き換えた場合の結果も示します。
表8-12 各種メソッドによるランク付けの結果
メソッド | (ITEM4, G2) = 25 | (ITEM2, G2) = 20 | (ITEM3, G2) = 20 | (ITEM1,G2) = 15 | (ITEM5,G2) = 7 |
---|---|---|---|---|---|
MIN |
1 |
2 |
2 |
4 |
5 |
MAX |
1 |
3 |
3 |
4 |
5 |
AVERAGE |
1 |
2.5 |
2.5 |
4 |
5 |
PACKED |
1 |
2 |
2 |
3 |
4 |
UNIQUE |
1 |
2 |
3 |
4 |
5 |
PERCENTILE |
100 |
62 |
62 |
25 |
1 |
DECILE |
10 |
7 |
7 |
3 |
1 |
QUARTILE |
4 |
3 |
3 |
1 |
1 |
Item2
とItem3
に関してUNIQUEメソッドから返される値は、2
の場合と3
の場合があります。これは、式の中に複数の等しい値が存在する場合、RANKファンクションによって一意のランクが不規則に割り当てられるためです。
例
例8-65 値のランク付け
アナリティック・ワークスペースに、geography
ディメンション、items
ディメンションおよびsales2
変数が含まれているものとします。
DEFINE geography DIMENSION TEXT MAINTAIN geography ADD 'g1' 'g2' 'g3' DEFINE items DIMENSION TEXT MAINTAIN items ADD 'Item1' 'Item2' 'Item3' 'Item4' 'Item5' DEFINE sales2 DECIMAL <geography items>
sales2
変数には、次のデータ値が含まれているとします。
-------------SALES2------------- -----------GEOGRAPHY------------ ITEMS g1 g2 g3 -------------- ---------- ---------- ---------- Item1 30.00 15.00 12.00 Item2 10.00 20.00 18.00 Item3 15.00 20.00 24.00 Item4 30.00 25.00 25.00 Item5 NA 7.00 21.00
次の文は、MINメソッドを使用してitems
ディメンションを基準にsales2
の値をランク付けした結果のレポートを生成します。
report rank(sales2 min basedon items)
この文によって生成される出力は、次のとおりです。
-RANK(SALES2 MIN BASEDON ITEMS)- -----------GEOGRAPHY------------ ITEMS g1 g2 g3 -------------- ---------- ---------- ---------- Item1 1.00 4.00 5.00 Item2 4.00 2.00 4.00 Item3 3.00 2.00 2.00 Item4 1.00 1.00 1.00 Item5 NA 5.00 3.00
次の文は、MINメソッドを使用してgeographyディメンションを基準にsales2
の値をランク付けした結果のレポートを生成します。
REPORT RANK(sales2 MIN BASEDON geography)
この文によって生成される出力は、次のとおりです。
----RANK(SALES2 MIN BASEDON----- -----------GEOGRAPHY)----------- -----------GEOGRAPHY------------ ITEMS g1 g2 g3 -------------- ---------- ---------- ---------- Item1 1.00 2.00 3.00 Item2 3.00 1.00 2.00 Item3 3.00 2.00 1.00 Item4 1.00 2.00 2.00 Item5 NA 2.00 1.00
次の文は、MINメソッドを使用してsales2
のすべてのディメンションを基準にsales2の値をランク付けした結果のレポートを生成します。
REPORT RANK(sales2, MIN)
この文によって生成される出力は、次のとおりです。
-------RANK(SALES2, MIN)-------- -----------GEOGRAPHY------------ ITEMS g1 g2 g3 -------------- ---------- ---------- ---------- Item1 1.00 10.00 12.00 Item2 13.00 7.00 9.00 Item3 10.00 7.00 5.00 Item4 1.00 3.00 3.00 Item5 NA 14.00 6.00