ROWNUMBER
Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung
Gibt den eindeutigen Rang für den aktuellen Kontext innerhalb der angegebenen Partition zurück, sortiert nach der angegebenen Reihenfolge. Wenn keine Übereinstimmung gefunden werden kann, ist die Zeilennummer leer.
Syntax
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parameter
Begriff | Definition |
---|---|
relation |
(Optional) Ein Tabellenausdruck, über den die Ausgabezeile zurückgegeben wird.
Wenn angegeben, müssen alle Spalten in orderBy und partitionBy daraus stammen.
Wenn nicht angegeben: - orderBy muss explizit angegeben werden.– Alle orderBy und partitionBy Spalten müssen vollqualifizierte sein und aus einer einzelnen Tabelle stammen.
– Standardmäßig werden alle Spalten in orderBy und partitionBy ALLSELECTED() angezeigt. |
axis |
(Optional) Eine Achse in der visuellen Form. Nur in visuellen Berechnungen verfügbar und ersetzt relation . |
orderBy |
(Optional) Eine ORDERBY() Klausel, die die Spalten enthält, die definieren, wie jede Partition sortiert wird.
Wenn nicht angegeben: - relation muss explizit angegeben werden.
– Standardmäßig wird jede Spalte in relation sortiert, die nicht bereits in partitionBy angegeben ist. |
blanks |
(Optional) Eine Aufzählung, die definiert, wie leere Werte beim Sortieren der relation oder axis behandelt werden.
Die unterstützten Werte sind:
Note, when the blanks parameter and blanks in the ORDERBY() () function on individual expressions are both specified, blanks on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without blanks being specified will honor the blanks parameter on the parent function. |
partitionBy |
(Optional) Eine PARTITIONBY() Klausel, die die Spalten enthält, die definieren, wie relation partitioniert wird. Wenn sie weggelassen wird, wird relation als einzelne Partition behandelt. |
matchBy |
(Optional) Eine MATCHBY() Klausel mit den Spalten, die definieren, wie Daten übereinstimmen und die aktuelle Zeile identifiziert werden. |
reset |
(Optional) Nur in visuellen Berechnungen verfügbar. Gibt an, ob die Berechnung zurückgesetzt wird und auf welcher Ebene der Spaltenhierarchie des visuellen Shapes. Akzeptierte Werte sind: ein Feldverweis auf eine Spalte in der aktuellen visuellen Form, NONE (Standard), LOWESTPARENT , HIGHESTPARENT oder eine ganze Zahl. Das Verhalten hängt vom ganzzahligen Vorzeichen ab: – Wenn null oder ausgelassen wird, wird die Berechnung nicht zurückgesetzt. Entspricht NONE .
- Wenn die ganze Zahl positiv ist, identifiziert die ganze Zahl die Spalte beginnend mit der höchsten, unabhängig von Korn. HIGHESTPARENT entspricht 1.
- Wenn negativ, identifiziert die ganze Zahl die Spalte beginnend mit dem niedrigsten, relativ zum aktuellen Korn. LOWESTPARENT entspricht -1. |
Rückgabewert
Die Zeilennummernummer für den aktuellen Kontext.
Bemerkungen
Jede orderBy
, partitionBy
und matchBy
Spalte muss einen entsprechenden äußeren Wert aufweisen, um die aktuelle Zeile zu definieren, auf der sie ausgeführt werden soll, mit dem folgenden Verhalten:
- Wenn genau eine entsprechende äußere Spalte vorhanden ist, wird der Wert verwendet.
- Wenn keine entsprechende äußere Spalte vorhanden ist, dann:
-
ROWNUMBER bestimmt zuerst alle
orderBy
,partitionBy
undmatchBy
Spalten, die keine entsprechende äußere Spalte aufweisen. - Für jede Kombination vorhandener Werte für diese Spalten im übergeordneten Kontext ROWNUMBER wird ROWNUMBER ausgewertet und eine Zeile zurückgegeben.
- ROWNUMBERendgültige Ausgabe ist eine Vereinigung dieser Zeilen.
-
ROWNUMBER bestimmt zuerst alle
- Wenn mehr als eine entsprechende äußere Spalte vorhanden ist, wird ein Fehler zurückgegeben.
Wenn matchBy
vorhanden ist, versucht ROWNUMBER, Spalten in matchBy
zu verwenden, und partitionBy
, um die aktuelle Zeile zu idenfity.
Wenn die in orderBy
angegebenen Spalten und partitionBy
jede Zeile in relation
nicht eindeutig identifizieren können, dann:
- ROWNUMBER versuchen, die geringste Anzahl zusätzlicher Spalten zu finden, die erforderlich sind, um jede Zeile eindeutig zu identifizieren.
- Wenn solche Spalten gefunden werden können, ROWNUMBER
- Versuchen Sie, die geringste Anzahl zusätzlicher Spalten zu finden, die erforderlich sind, um jede Zeile eindeutig zu identifizieren.
- Fügen Sie diese neuen Spalten automatisch an
orderBy
Klausel an. - Sortieren Sie jede Partition mithilfe dieser neuen Gruppe von "orderBy"-Spalten.
- Wenn solche Spalten nicht gefunden werden können und die Funktion eine Bindung zur Laufzeit erkennt, wird ein Fehler zurückgegeben.
reset
kann nur in visuellen Berechnungen verwendet werden und kann nicht in Kombination mit orderBy
oder partitionBy
verwendet werden. Wenn reset
vorhanden ist, können axis
angegeben werden, aber relation
nicht.
Beispiel 1 – berechnete Spalte
Die folgende DAX Abfrage:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
Gibt eine Tabelle zurück, die jede Geografie mit demselben "EnglishCountryRegionName" nach "StateProvinceName" und "City" eindeutig bewertet.
Beispiel 2 – visuelle Berechnung
Die folgende visuelle Berechnung DAX Abfragen:
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))
Erstellen Sie zwei Spalten, die jeden Monat jeweils nach dem Gesamtumsatz , sowohl innerhalb jedes Jahres als auch innerhalb des gesamten Verlaufs, rangieren.
Der folgende Screenshot zeigt die visuelle Matrix und den ersten ausdruck der visuellen Berechnung: