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