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

前
 
次
 

RANK

RANKファンクションは、数式の値のランクを計算します。

戻り値

DECIMAL

構文

RANK(expression method [attributes] [BASEDON dimension-list])

attributesは、次のいずれか1つ以上です。

RESET
NAFIRST
NALAST
LIMITSAVE (limit-expression...)
TIEBREAKERS (target-expression...)

パラメータ

expression

ランキングが計算される数式。

method

expressionの中の値のランクを計算するときに使用するメソッド。method引数は、次のキーワードのいずれかです。「メソッド値の結果」も参照してください。

表8-11 RANK計算のためのメソッド

メソッド 説明

MIN

等しい値が複数存在する場合、同一の最小ランクが付けられる。

MAX

等しい値が複数存在する場合、同一の最大ランクが付けられる。

AVERAGE

等しい値が複数存在する場合、同一の平均ランクが付けられる。

PACKED

等しい値が複数存在する場合、同一のランクが付けられるが、結果は連続INTEGER値になる。

UNIQUE

すべての値に一意のランクが付けられる。等しい値が複数存在する場合、ランクは不定。

PERCENTILE

式の中における値の出現の相対度数に応じて、1から100までのランクが付けられる。

DECILE

式の中における値の相対度数に応じて、1から10までのランクが付けられる。

QUARTILE

式の中における値の出現の相対度数に応じて、1から4までのランクが付けられる。


RESET

ループ文内(代入文など)のRANKの計算方法を変更します。

  • RESETを指定しない場合、各グループのメンバーのランクが計算されるのは1回のみで、ランク付けされたこれらの値はキャッシュに格納されます。ループ文の実行が繰り返され、同じ値セットに対してRANKが実行されると、RANKの戻り値にはキャッシュされた値が使用されます。

  • RESETを指定した場合、ループ文内のRANKは実行時に毎回再計算されます。その結果、RANKを含むループ文の実行にかかる時間が大幅に増加します。

ループ文の実行時にいずれかのグループ内のメンバーのランクが変わることがわかっている場合を除き、ループ文内のRANKに対してRESETは指定しません。

NAFIRST

値をランク付けする前に、すべてのNA値が正の最大小数か(10**308)に変換されます。


注意:

NAFIRSTまたはNALISTのいずれかを指定しないかぎり、NAの式値によってNAランクが生成されます。

NALAST

値をランク付けする前に、すべてのNA値が負の最大小数か-(10**308)に変換されます。


注意:

NAFIRSTまたはNALISTのいずれかを指定しないかぎり、NAの式値によってNAランクが生成されます。

LIMITSAVE

RANKの計算時に使用されるディメンションのステータスを指定します。LIMITSAVEはCHGDIMSで指定するのではなく、RANKファンクション内で指定することによって、RANKで新しい結果を計算する必要がある場合に、一度のみステータスを評価できます。

limit-expression

RANKの実行時に、ディメンション・ステータスの判別に使用されるディメンション値。limit-expression引数には、値セット、LIMITファンクションまたはSORTファンクションなど、あらゆる式を指定できます。

TIEBREAKERS

同じランクの値を順序付けする方法を指定します。

tiebreaker-expression

値セット、LIMITファンクションまたはSORTファンクションなど、あらゆる式を指定できます。Oracle OLAPは、指定された順序でtiebreaker-expressionを実行します。各tiebreaker-expressionのディメンションのステータスは、LIMITSAVE句で指定したステータス(指定した場合)か、ディメンションの現在のステータスとなります。


注意:

tiebreaker-expressionの値セットを指定すると、Oracle OLAPは、-(STATRANK)の順序でランク付けされた項目を返します。

BASEDON dimension-list

ランキングに含める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


Item2Item3に関して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