Dela via


RANK

gäller för:beräknad kolumnberäknad tabellMåttVisuell beräkning

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

Syntax

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

Parametrar

Term Definition
ties (Valfritt) Definierar hur rangordningen ska hanteras när två eller flera rader är bundna.
Om det anges är värdet som stöds antingen DENSE eller SKIP.
Om det utelämnas:
– Standardvärdet är SKIP
relation (Valfritt) Ett tabelluttryck som utdataraden returneras från.
Om det anges måste alla kolumner i orderBy och partitionBy komma från den.
Om det utelämnas:
- orderBy måste anges uttryckligen.
– Alla orderBy och partitionBy kolumner måste vara fullständigt kvalificerade och komma från en enda tabell.
– Standardvärdet är ALLSELECTED() för alla kolumner i orderBy och partitionBy.
axis (Valfritt) En axel i den visuella formen. Endast tillgängligt i visuella beräkningar och ersätter relation.
orderBy (Valfritt) En ORDERBY-sats () som innehåller kolumnerna som definierar hur varje partition sorteras.
Om det utelämnas:
- relation måste anges uttryckligen.
– Standardinställningen är att sortera efter varje kolumn i relation som inte redan har angetts i partitionBy.
blanks (Valfritt) En uppräkning som definierar hur du hanterar tomma värden när du sorterar relation eller axis.
De värden som stöds är:
  • DEFAULT (standardvärdet), där beteendet för numeriska värden är tomma värden sorteras mellan noll och negativa värden. Beteendet för strängar är tomma värden sorteras före alla strängar, inklusive tomma strängar.
  • FIRSTsorteras alltid blanksteg i början, oavsett stigande eller fallande sorteringsordning.
  • LASTsorteras alltid tomma objekt i slutet, oavsett stigande eller fallande sorteringsordning.

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

Returvärde

Rangnumret för den aktuella kontexten.

Anmärkningar

  • Varje orderBy, partitionByoch matchBy kolumn måste ha ett motsvarande yttre värde för att definiera den aktuella rad som ska användas, med följande beteende:

    • Om det finns exakt en motsvarande yttre kolumn används dess värde.
    • Om det inte finns någon motsvarande yttre kolumn:
      • RANK avgör först alla orderBy, partitionByoch matchBy kolumner som inte har någon motsvarande yttre kolumn.
      • För varje kombination av befintliga värden för dessa kolumner i RANK överordnad kontext utvärderas RANK och en rad returneras.
      • RANKslutliga utdata är ett rangnummer.
  • Om matchBy finns försöker RANK använda kolumner i matchBy och partitionBy för att idenfity den aktuella raden.

  • Om kolumnerna som anges i orderBy och partitionBy inte unikt kan identifiera varje rad i relationkan två eller flera rader ha samma rangordning och rangordningen bestäms av parametern ties.

  • RANK returnerar ett tomt värde för totalt antal rader. Vi rekommenderar att du testar uttrycket noggrant.

  • RANK jämförs inte med RANKX eftersom SUM jämförs med SUMX.

  • reset kan endast användas i visuella beräkningar och kan inte användas i kombination med orderBy eller partitionBy. Om reset finns kan axis anges men relation inte.

Exempel 1 – beräknad kolumn

Följande DAX fråga:

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

Returnerar en tabell som rangordnar varje geografi med samma EnglishCountryRegionName efter deras StateProvinceName och City. Tomma orderBy kolumnvärden sorteras i slutet.

Exempel 2 – visuell beräkning

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

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

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

Skapa två kolumner som rangordnar varje månad efter den totala försäljningen, både inom varje år och hela historiken.

Skärmbilden nedan visar den visuella matrisen och det första visuella beräkningsuttrycket:

DAX visuell beräkning

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER