ROW_NUMBER
は、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。
ROW_NUMBER
では、各ディメンション・メンバーに一意のランクが割り当てられます。同じ値でもランクは任意です。たとえば、ROW_NUMBER
は、5つのディメンション番号に対して、すべてが同じ値であっても常に1、2、3、4、5を返します。
戻り値
NUMBER
構文
ROW_NUMBER ( ) 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)が割り当てられていることに注意してください。
ROW_NUMBER() OVER (HIERARCHY 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 | 7 |
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 |
関連トピック