指定したパーティション内の現在のコンテキストのランキングを、指定した順序で並べ替え、返します。 一致するものが見つからない場合、ランクは空白になります。
構文
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
パラメーター
用語 | 定義 |
---|---|
ties |
(省略可能)2 つ以上の行が関連付けられているときにランク付けを処理する方法を定義します。
指定した場合、サポートされる値は DENSE または SKIP です。 省略した場合: - 既定値は SKIP |
relation |
(省略可能)出力行が返されるテーブル式。 ビジュアル計算で使用する場合、このパラメーターは視覚図形の軸を受け入れます。
指定した場合、 orderBy および partitionBy 内のすべての列は、その列から取得する必要があります。
省略した場合: - orderBy を明示的に指定する必要があります。- すべての orderBy 列と partitionBy 列は完全修飾で、単一のテーブルから取得する必要があります。
- ALLSELECTED および orderBy のすべての列の partitionBy () が既定値になります。 |
orderBy |
(省略可能)各パーティションの並べ替え方法を定義する列を含む ORDERBY() 句。
省略した場合: - relation を明示的に指定する必要があります。
- 既定では、 relation でまだ指定されていない partitionBy 内のすべての列によって並べ替えられます。 |
blanks |
(省略可能)relation または axis を並べ替えるときに空白値を処理する方法を定義する列挙体。
サポートされている値は次のとおりです。
注意: 個々の式に対する blanks 関数の ORDERBY パラメーターと空白の両方が指定されている場合、個々の orderBy 式の は関連する orderBy 式に優先され、blanks を指定しない orderBy 式は親関数の blanks パラメーターを受け取ります。 |
partitionBy |
(省略可能)PARTITIONBY のパーティション分割方法を定義する列を含む 句。 省略すると、relation は 1 つのパーティションとして扱われます。 |
matchBy |
(省略可能)データの照合方法と現在の行の識別方法を定義する列を含む MATCHBY() 句。 |
reset |
(省略可能)ビジュアル計算でのみ使用できます。 計算がリセットされるかどうか、およびビジュアル図形の列階層のレベルを示します。 使用できる値は、現在の視覚図形の列へのフィールド参照、NONE (既定値)、LOWESTPARENT 、HIGHESTPARENT 、または整数です。 動作は、整数符号 (- 0 または省略した場合) に依存し、計算はリセットされません。 NONE に相当します。
- 正の場合、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負の値の場合、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。 |
戻り値
現在のコンテキストのランク番号。
備考
各
orderBy
、partitionBy
、およびmatchBy
列には、動作する現在の行を定義するのに役立つ、対応する外部値が必要です。次の動作を使用します。- 対応する外部列が 1 つだけ存在する場合は、その値が使用されます。
- 対応する外部列がない場合は、次のようにします。
-
RANK は、最初に、対応する外部列がないすべての
orderBy
、partitionBy
、およびmatchBy
列を決定します。 - 親コンテキスト内のこれらの列の既存の値の組み合わせ RANK すべてについて、RANK が評価され、行が返されます。
- RANKの最終的な出力はランク番号です。
-
RANK は、最初に、対応する外部列がないすべての
matchBy
が存在する場合、RANK はmatchBy
の列を使用し、partitionBy
を使用して現在の行を表します。orderBy
内で指定された列とpartitionBy
がrelation
内のすべての行を一意に識別できない場合、2 つ以上の行が同じランク付けになる可能性があり、順位付けは ties パラメーターによって決定されます。RANK は、合計行の空白値を返します。 式を徹底的にテストすることをお勧めします。
RANK は、RANKXと比較 SUMSUMX とは比較されません。
reset
はビジュアル計算でのみ使用でき、orderBy
またはpartitionBy
と組み合わせて使用することはできません。reset
が存在する場合は、axis
を指定できますが、relation
指定できません。reset
の値が絶対値 (正の整数、HIGHESTPARENT
、またはフィールド参照) であり、階層内のターゲット レベル以上で計算が評価される場合、計算は個々の要素ごとにリセットされます。 つまり、関数は、その特定の要素のみを含むパーティション内で評価されます。
例 1 - 計算列
次の DAX クエリ:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"Rank",
RANK(
DENSE,
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
LAST,
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
StateProvinceName と City によって、同じ EnglishCountryRegionName を持つ各 geography をランク付けするテーブルを返します。 空白 orderBy
列の値は末尾に並べ替えられます。
例 2 - ビジュアル計算
次の視覚的な計算 DAX クエリです。
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
毎年の売上合計と履歴全体の両方で、毎月ランク付けする 2 つの列を作成します。
次のスクリーンショットは、ビジュアル マトリックスと最初のビジュアル計算式を示しています。
視覚的な計算 を