Dela via


ROWNUMBER

gäller för:beräknad kolumnberäknad tabellMeasurevisuell beräkning

Returnerar den unika rangordningen för den aktuella kontexten inom den angivna partitionen, sorterad efter angiven ordning. If det går inte att hitta en matchning rownumber är blank.

Syntax

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

Parametrar

Period Definition
relation (Valfritt) Ett tabelluttryck som utdataraden returneras från.
If anges måste all kolumner i orderByandpartitionBy komma från den.
If utelämnas:
- orderBy måste anges uttryckligen.
– AllorderByandpartitionBy kolumner måste vara fullständigt kvalificerade and komma från en enda tabell.
– Standardvärdet är ALLSELECTED() för all kolumner i orderByandpartitionBy.
axis (Valfritt) En axel i den visuella formen. Endast tillgängligt i visuella beräkningar ersätter andrelation.
orderBy (Valfritt) En ORDERBY-sats () som innehåller kolumnerna som define hur varje partition sorteras.
If utelämnas:
- relation måste anges uttryckligen.
– Standardinställningen är att sortera efter varje kolumn i relation som not redan har angetts i partitionBy.
blanks (Valfritt) En uppräkning som definierar hur du hanterar blankvalues vid sortering.
De values som stöds är:
  • DEFAULT (standard value), där beteendet för numeriska values är blankvalues sorteras mellan noll and negativa values. Beteendet för strängar är blankvalues sorteras före all strängar, inklusive tomma strängar.
  • FIRSTsorteras alltid blanksteg i början, oavsett stigande or fallande sorteringsordning.
  • LASTsorteras alltid tomma objekt i slutet, oavsett stigande or fallande sorteringsordning.

Observera att när både blanks parameter and blanks i ORDERBY() för enskilda uttryck anges, blanks för enskilda orderBy uttryck prioriteras för det relevanta orderBy uttrycket, andorderBy uttryck utan att blanks anges kommer att respektera blanks parametern på den överordnade Window funktionen.
partitionBy (Valfritt) En PARTITIONBY-sats () som innehåller kolumnerna som define hur relation partitioneras.
If utelämnas behandlas relation som en enda partition.
matchBy (Valfritt) En MATCHBY-sats () som innehåller kolumnerna som define hur du matchar data and identifiera den aktuella raden.
reset (Valfritt) Endast tillgängligt i visuella beräkningar. Anger if beräkningen återställs, and på vilken nivå av den visuella formens kolumnhierarki. Godkända values är: en fältreferens till en kolumn i den aktuella visuella formen, NONE (standard), LOWESTPARENT, HIGHESTPARENT, or ett heltal. Beteendet beror på heltal sign:
– If noll or utelämnas återställs beräkningen not. Motsvarar NONE.
– If positivt identifierar heltal kolumnen med början från den högsta, oberoende av kornighet. HIGHESTPARENT motsvarar 1.
– If negativt identifierar heltal kolumnen med början från den lägsta, i förhållande till det aktuella kornet. LOWESTPARENT motsvarar -1.

Returnera value

Det rownumber talet för den aktuella kontexten.

Kommentarer

Varje orderBy, partitionBy, andmatchBy kolumn måste ha motsvarande yttre value för att define den aktuella raden som ska användas, med följande beteende:

  • If det finns exakt en motsvarande yttre kolumn används dess value.
  • If det inte finns någon motsvarande yttre kolumn:
    • ROWNUMBER avgör firstallorderBy, partitionBy, andmatchBy kolumner som inte har någon motsvarande yttre kolumn.
    • För varje kombination av befintliga values för dessa kolumner i ROWNUMBER överordnad kontext utvärderas ROWNUMBERand en rad returneras.
    • ROWNUMBERslututdata är en union av dessa rader.
  • If det finns mer än en motsvarande yttre kolumn returneras en error.

If matchBy finns försöker ROWNUMBER använda kolumner i matchByandpartitionBy för att idenfity den aktuella raden. If kolumnerna som anges i orderByandpartitionBy kan inte unikt identifiera varje rad i relationoch sedan:

  • ROWNUMBER försöker find minst antal ytterligare kolumner som krävs för att unikt identifiera varje rad.
  • If sådana kolumner finns ROWNUMBER
    • Försök att find minst antal ytterligare kolumner som krävs för att unikt identifiera varje rad.
    • Lägg automatiskt till dessa nya kolumner i orderBy-sats.
    • Sortera varje partition med den här nya uppsättningen orderBy kolumner.
  • If sådana kolumner inte kan hittas and funktionen identifierar ett oavgjort resultat vid körning returneras en error.

reset kan endast användas i visuella beräkningar kan and inte användas i kombination med orderByorpartitionBy. If reset finns kan axis anges, men relation kan inte det.

Exempel 1 – beräknad kolumn

Följande DAX fråga:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Returnerar en tabell som unikt rangordnar varje geografi med samma EnglishCountryRegionName efter deras StateProvinceName and City.

Exempel 2 – visuell beräkning

Följande visuella beräkning DAX frågor:

SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

Skapa två kolumner som unikt rank varje month av den totala försäljningen, båda inom varje yearand hela historiken.

Skärmbilden nedan visar den visuella matrisen and det first visuella beräkningsuttrycket:

DAX visuell beräkning

INDEX ORDERBY PARTITIONBY WINDOW RANK