RANK
指定したパーティション内の現在のコンテキストのランキングを、指定した順序で並べ替え、返します。 一致が見つからない If は、rank が blank。
構文
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
パラメーター
用語 | 定義 |
---|---|
ties |
(省略可能)さらに 2 つの行 or が関連付けられているときにランク付けを処理する方法を定義します。 指定 If、サポートされている value は DENSE or SKIP です。 省略 If: - 既定値は SKIP |
relation |
(省略可能)出力行が返されるテーブル式。 指定 If、 orderBy andpartitionBy 内 all 列は、その列から取得する必要があります。
If 省略: - orderBy を明示的に指定する必要があります。- All orderBy andpartitionBy 列は、1 つのテーブルから取得 and 完全修飾されている必要があります。
- orderBy andpartitionBy の all 列の ALLSELECTED() が既定値になります。 |
axis |
(省略可能)視覚図形の軸。 視覚的な計算でのみ使用でき、and は relation を置き換えます。 |
orderBy |
(省略可能)各パーティションの並べ替え方法を define する列を含む ORDERBY() 句。
If 省略: - relation を明示的に指定する必要があります。
- partitionBy で既に指定 notrelation 内のすべての列による順序付けが既定値です。 |
blanks |
(省略可能)並べ替え時の blankvalues の処理方法を定義する列挙体。
サポートされている values は次のとおりです。
注意 blanks 、個々の式の ORDERBY() 関数のパラメーター and 空白が両方とも指定されている場合、個々の orderBy 式の blanks は、関連する orderBy 式に対して優先され、andorderBy 式 blanks 指定されていない場合、親 Window 関数のパラメーター blanks 優先されます。 |
partitionBy |
(省略可能)relation のパーティション分割方法を define する列を含む PARTITIONBY() 句。 省略 If、 relation は 1 つのパーティションとして扱われます。 |
matchBy |
(省略可能)現在の行を識別 and データの照合方法を define する列を含む MATCHBY() 句。 |
reset |
(省略可能)ビジュアル計算でのみ使用できます。 計算 if リセット and、ビジュアル図形の列階層のレベルを示します。 使用できる values は、NONE 、LOWESTPARENT 、HIGHESTPARENT 、整数 or です。 動作は、整数の signによって異なります: - If 0 or 省略すると、計算はリセット not。 NONE に相当します。
- 正 If、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負 If、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。 |
value を返す
現在のコンテキストの rank 番号。
備考
各
orderBy
、partitionBy
、andmatchBy
列には、動作する現在の行を define するのに役立つ、対応する外部 value が必要です。これは次の動作です。- 対応する外部列が 1 つだけ存在する If は、その value が使用されます。
- 対応する外部列がない If は、次のようになります。
-
RANK は、対応する外部列を持たない列 and
matchBy
、allorderBy
、partitionBy
、first を決定します。 - 親コンテキスト内のこれらの列に対する既存の values の組み合わせ RANK すべてについて、行が返 andRANK が評価されます。
- RANKの最終的な出力は rank 数です。
-
RANK は、対応する外部列を持たない列 and
If
matchBy
が存在する場合、RANK はmatchBy
andpartitionBy
の列を使用して現在の行をべき等にしようとします。orderBy
andpartitionBy
内で指定された列がrelation
内のすべての行を一意に識別できない If、さらに 2 つの or 行が同じランク付け and、順位付けは ties パラメーターによって決定される可能性があります。RANK は、合計行の blankvalue を返します。 式を徹底的にテストすることをお勧めします。
RANK は SUMXと比較 notSUMRANKX と比較されます。
reset
ビジュアル計算でのみ使用できますが、and をorderBy
orpartitionBy
と組み合わせて使用することはできません。 Ifreset
が存在する場合、axis
は指定できますが、relation
指定できません。
例 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 and City によって、同じ EnglishCountryRegionName を持つ各 geography をランク付けするテーブルを返します。
Blank
orderBy
列 values は末尾に並べ替えられます。
例 2 - ビジュアル計算
次の視覚的な計算 DAX クエリです。
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
各 month を売上合計で rank する 2 つの列を作成します。両方とも、各 year内で、履歴全体を and します。
次のスクリーンショットは、first ビジュアル計算式 and ビジュアル マトリックスを示しています。
視覚的な計算 を