ヘッダーをスキップ
Oracle® OLAP Expression Syntaxリファレンス
リリース11.2
B70202-01
  目次へ移動
目次

前
 
次
 

DENSE_RANK

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

関連トピック

AVERAGE_RANKRANKROW_NUMBER