RANK
は、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。
RANK
では、同じ値には同じランクが割り当てられます。たとえば、5つのディメンション・メンバーに対して、RANK
から、1、2、3、3、5が返されることがあります。
戻り値
NUMBER
構文
RANK ( ) OVER (rank_clause)
rank_clause::=
{ DIMENSION dimension_id | HIERARCHY hierarchy_id } ORDER BY order_by_clause [, order_by_clause]... [ WITHIN { PARENT | LEVEL | ANCESTOR AT { DIMENSION LEVEL dim_lvl_id | HIERARCHY LEVEL hier_level_id } } ]
order_by_clause::=
expression [ASC | DESC] [NULLS {FIRST | LAST}]
引数
dimension_id
デフォルト階層を使用して値が計算されるディメンション。
hierarchy_id
値が計算される階層。代わりにdimension_id
が使用される場合、デフォルト階層が使用されます。
ORDER BY
ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY
句を追加することができます。
expression
ランクの基準として使用する値を指定します。
ASC | DESC
最小値から最大値(昇順)または最大値から最小値(降順)の順にランクをソートします。
NULLS {FIRST | LAST}
NULL値を含む数を最初にリストするか最後にリストするかを決定します。
WITHIN
一連の関連するディメンション・メンバーをランク付けするために選択します。
PARENT
: 同じ親を持つ同一レベルのメンバーをランク付けします。
LEVEL
: 同じレベルのすべてのメンバーをランク付けします。
ANCESTOR
: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。
dim_level_id
dimension_id
のレベルの名前。
hier_level_id
hierarchy_id
のレベルの名前。
例
次の例は、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-02)が同じ値と同じランク(6)を持つため、7にランク付けされている月はないことに注意してください。
RANK() OVER (DIMENSION TIME.CALENDAR ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)
製品 | 時間 | コスト | ランク |
---|---|---|---|
Deluxe Mouse | MAR-02 | 24.05 | 1 |
Deluxe Mouse | APR-02 | 23.95 | 2 |
Deluxe Mouse | FEB-02 | 23.94 | 3 |
Deluxe Mouse | AUG-02 | 23.88 | 4 |
Deluxe Mouse | MAY-02 | 23.84 | 5 |
Deluxe Mouse | JAN-02 | 23.73 | 6 |
Deluxe Mouse | JUL-02 | 23.73 | 6 |
Deluxe Mouse | JUN-02 | 23.72 | 8 |
Deluxe Mouse | SEP-02 | 23.71 | 9 |
Deluxe Mouse | NOV-02 | 23.65 | 10 |
Deluxe Mouse | DEC-02 | 23.62 | 11 |
Deluxe Mouse | OCT-02 | 23.37 | 12 |
関連トピック