DENSE_RANK
は、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。
DENSE_RANK
は、同じ値に同じ最小ランクを割り当て、結果を順次リストで返します。結果のランク数は、リスト中の値の数よりも少なくなることがあります。たとえば、DENSE_RANK
は5つのディメンション・メンバーに対して1、2、3、3、4を返すことがあります。
戻り値
NUMBER
構文
DENSE_RANK ( ) OVER (rank_clause)
rank_clause::=
{ DIMENSION dimension_id | HIERARCHY hierarchy_id } ORDER BY order_by_clause [, order_by_clause]... [ WITHIN { LEVEL | PARENT | 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
一連の関連するディメンション・メンバーをランク付けするために選択します。
LEVEL
: 同じレベルのすべてのメンバーをランク付けします。
PARENT
: 同じ親を持つ同一レベルのメンバーをランク付けします。
ANCESTOR
: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。
dim_level_id
dimension_id
のレベルの名前。
hier_level_id
hierarchy_id
のレベルの名前。
例
次の例は、デフォルトのカレンダ階層を使用して、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-2)が同じ値と同じランク(6)を持ちますが、ランキングはJUN-02に対して7から継続されることに注意してください。
DENSE_RANK() OVER (DIMENSION "TIME" ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)
製品 | 時間 | コスト | Denseランク |
---|---|---|---|
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 | 7 |
Deluxe Mouse | SEP-02 | 23.71 | 8 |
Deluxe Mouse | NOV-02 | 23.65 | 9 |
Deluxe Mouse | DEC-02 | 23.62 | 10 |
Deluxe Mouse | OCT-02 | 23.37 | 11 |
関連トピック