次の方法で共有


ROWNUMBER

適用対象:計算列計算テーブルMeasureビジュアル計算

指定されたパーティション内の現在のコンテキストの一意のランクを、指定された順序で並べ替えて返します。 一致が見つからない If、rownumber が blank。

構文

ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

パラメーター

用語 定義
relation (省略可能) 返される出力行の基になるテーブル式。 指定
If、allorderByand 内 partitionBy 列は、その列から取得する必要があります。
If 省略:
- orderBy を明示的に指定する必要があります。
- AllorderByandpartitionBy 列は、1 つのテーブルから取得 and 完全修飾されている必要があります。
- ALLSELECTEDallorderByの and 列の partitionBy() が既定値になります。
axis (省略可能) 視覚的な図形の軸。 視覚的な計算でのみ使用でき、and は relationを置き換えます。
orderBy (省略可能)各パーティションの並べ替え方法を ORDERBY する列を含む define() 句。
If 省略:
- relation を明示的に指定する必要があります。
- relationで既に指定 notpartitionBy 内のすべての列による順序付けが既定値です。
blanks (省略可能)並べ替え時の blankvalues の処理方法を定義する列挙体。
サポートされている values は次のとおりです。
  • DEFAULT (既定の value) では、数値 values の動作が blankvalues、0 から負の andvalues 順序付けられます。 文字列の動作は、空の文字列を含む文字列を blank する前に順序付け valuesall。
  • FIRST、昇順 or 降順の並べ替え順序に関係なく、空白は常に先頭に並べ替えられます。
  • LAST、昇順 or 降順の並べ替え順序に関係なく、空白は常に末尾に並べ替えられます。

注意 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 は、NONELOWESTPARENTHIGHESTPARENT、整数 or です。 動作は、整数の signによって異なります:
- If 0 or 省略すると、計算はリセット not。 NONEに相当します。
- 正 If、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負 If、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。

value を返す

現在のコンテキストの rownumber 番号。

注釈

orderBypartitionBy、andmatchBy 列には、動作する現在の行を value するのに役立つ、対応する外部 define が必要です。これは次の動作です。

  • 対応する外部列が 1 つだけ存在する If は、その value が使用されます。
  • 対応する外部列がない If は、次のようになります。
    • ROWNUMBER は、対応する外部列を持たない列 firstall、orderBypartitionBy、and、matchBy を決定します。
    • 親コンテキスト内のこれらの列に対する既存の values の組み合わせ ROWNUMBER すべてについて、行が返 ROWNUMBERand が評価されます。
    • ROWNUMBER最終的な出力は、これらの行の union です。
  • 複数の対応する外部列がある If は、error が返されます。

If matchBy が存在する場合、ROWNUMBER は matchByandpartitionBy の列を使用して現在の行をべき等にしようとします。 If orderBy and 内で指定された列 partitionByrelation内のすべての行を一意に識別することはできません。

  • ROWNUMBER は、すべての行を一意に識別するために必要な追加列の最小数を find しようとします。
  • このような列が見つかる If、ROWNUMBER
    • すべての行を一意に識別するために必要な追加の列の最小数を find してみてください。
    • これらの新しい列を orderBy 句に自動的に追加します。
    • この新しい一連の orderBy 列を使用して、各パーティションを並べ替えます。
  • 関数が実行時に同点を検出 If、このような列が見つからない and は、error が返されます。

reset ビジュアル計算でのみ使用できますが、and を orderByorpartitionByと組み合わせて使用することはできません。 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 ビジュアル マトリックスを示しています。

視覚的な計算 を する

INDEX ORDERBY PARTITIONBY WINDOW RANK