Rank

EssbaseのMDX Rank()関数は、セット内のタプルの数値位置を返します。

構文

Rank ( member_or_tuple, set [,numeric_value_expr [,ORDINALRANK | DENSERANK | PERCENTRANK ]] )

パラメータ

member_or_tuple

ランク付けるメンバーまたはタプル。

set

ランク付けるタプルを含むセット。重複メンバーは含められません。

numeric_value_expr

オプション。数値のソート基準。

ORDINALRANK

オプション。重複を個別にランク付けます。同順位はEssbaseによって決定されます。重複は異なるエンティティと見なされます。例: (1,2,3,4,5)。

DENSERANK

オプション。序数にギャップのないランク付け。同順位は同じランクが付けられます。例: (1,1,1,2,3)

PERCENTRANK

オプション。0から1までのスケールでランク付けます。ランク値は、このメンバーまでの累積合計によってスケーリングされます。例: ( .1, .15, .34, .78, 1.0)。

ノート

Rank関数は、集約ストレージ(ASO)キューブにのみ適用されます。

数値式が指定されていない場合、この関数はセット内のタプルの1から始まる位置を返します。

数値式が指定されている場合、この関数は数値に基づいてセットをソートし、ソートされたセット内のタプルの1から始まる位置を返します。

オプションのランク・フラグ(ORDINALRANK、DENSERANKまたはPERCENTRANK)が指定されている場合、Rank関数は数値に基づいてセットをソートし、フラグの指示に従って、ソートされたセット内のタプルの1から始まる位置を返します。ランク・フラグが指定されていない場合、同順位には同じランクが付けられ、次のメンバーはメンバーの数です。例: (1,1,1,4,5)。

この関数がセットをソートする場合、タプルを降順でソートし、その順序に基づいてランクを割り当てます(最高値は1にランク付けられます)。

例1

WITH MEMBER [Measures].[Units_Rank] AS 
 'Rank(Products.CurrentMember, Products.CurrentMember.Siblings)' 
SELECT 
 {Units, [Price Paid], [Units_Rank]} 
ON COLUMNS, 
 { Products.Members } ON ROWS 
FROM ASOSamp.Basic

例2

WITH MEMBER [Measures].[Units_Rank] AS
  'Rank( Products.CurrentMember, Products.CurrentMember.Siblings)'
SELECT {Units, [Measures].[Units_Rank]} 
ON COLUMNS, 
 Union(Children([Televisions]),
      Children([Radios])) 
ON ROWS 
FROM ASOSamp.Basic

例3

次のMDXの例は、ユニットのメジャーの観点から兄弟タプルをランク付けします。

WITH MEMBER [Measures].[Units_Rank] AS 
  'Rank(([Products].CurrentMember), {[Products].CurrentMember.Siblings}, Measures.[Units])'
SELECT 
 {Units, [Price Paid], [Units_Rank]} 
ON COLUMNS, 
 { Products.Members } ON ROWS 
FROM ASOSamp.Basic

例4

次のMDXの例は、上位レベルのメンバーのレベル0の子孫に沿ってタプルをランク付けします。

WITH MEMBER [Measures].[Units_Rank] AS 
  'Rank(([Products].CurrentMember),{Descendants([Products],10,LEAVES)})'
SELECT 
 {Units, [Price Paid], [Units_Rank]} 
ON COLUMNS, 
 { Products.Members } ON ROWS 
FROM ASOSamp.Basic