Del via


RANK

gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering

Returnerer rangeringen for den aktuelle kontekst i den angivne partition sorteret efter den angivne rækkefølge. Hvis der ikke blev fundet et match, er rangering tom.

Syntaks

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

Parametre

Udtryk Definition
ties (Valgfrit) Definerer, hvordan rangeringen skal håndteres, når to eller flere rækker er bundet.
Hvis det er angivet, er den understøttede værdi enten DENSE eller SKIP.
hvis udeladt:
– standard er SKIP
relation (Valgfrit) Et tabeludtryk, som outputrækken returneres fra.
Hvis det er angivet, skal alle kolonner i orderBy og partitionBy komme fra den.
Hvis udeladt:
- orderBy skal angives eksplicit.
– Alle kolonner af typen orderBy og partitionBy skal være fuldt kvalificerede og komme fra en enkelt tabel.
– ALLSELECTED() som standard for alle kolonner i orderBy og partitionBy.
axis (Valgfrit) En akse i visualiseringsfiguren. Kun tilgængelig i visuelle beregninger og erstatter relation.
orderBy (Valgfrit) En ORDERBY() delsætning, der indeholder de kolonner, der definerer, hvordan hver partition sorteres.
Hvis udeladt:
- relation skal angives eksplicit.
– Som standard sorteres efter hver kolonne i relation, der ikke allerede er angivet i partitionBy.
blanks (Valgfrit) En optælling, der definerer, hvordan tomme værdier skal håndteres ved sortering af relation eller axis.
De understøttede værdier er:
  • DEFAULT (standardværdien), hvor funktionsmåden for numeriske værdier er tomme værdier, sorteres mellem nul og negative værdier. Funktionsmåden for strenge er tomme værdier sorteres før alle strenge, herunder tomme strenge.
  • FIRSTsorteres tomme værdier altid i starten, uanset stigende eller faldende sorteringsrækkefølge.
  • LASTsorteres tomme værdier altid i slutningen, uanset stigende eller faldende sorteringsrækkefølge.

Bemærk, at når blanks-parameteren og tomme værdier i funktionen ORDERBY() for individuelle udtryk begge er angivet, prioriteres blanks i det enkelte orderBy-udtryk for det relevante orderBy-udtryk, og orderBy-udtryk, uden at blanks er angivet, vil overholde parameteren blanks for den overordnede funktion.
partitionBy (Valgfrit) En PARTITIONBY() delsætning, der indeholder de kolonner, der definerer, hvordan relation partitioneres. Hvis den udelades, behandles relation som en enkelt partition.
matchBy (Valgfrit) En MATCHBY() delsætning, der indeholder de kolonner, der definerer, hvordan dataene skal matche og identificere den aktuelle række.
reset (Valgfrit) Kun tilgængelig i visuelle beregninger. Angiver, om beregningen nulstilles, og på hvilket niveau i den visuelle figurs kolonnehierarki. Accepterede værdier er: en feltreference til en kolonne i den aktuelle visualiseringsfigur, NONE (standard), LOWESTPARENT, HIGHESTPARENTeller et heltal. Funktionsmåden afhænger af heltalstegnet:
– Hvis nul eller udeladt, nulstilles beregningen ikke. Svarer til NONE.
– Hvis den er positiv, identificerer heltalet kolonnen, der starter fra den højeste, uafhængig af detaljering. HIGHESTPARENT svarer til 1.
– Hvis det er negativt, identificerer heltalet kolonnen med start fra det laveste i forhold til den aktuelle detaljering. LOWESTPARENT svarer til -1.

Returværdi

Rangeringsnummeret for den aktuelle kontekst.

Bemærkninger

  • Hver kolonne af typen orderBy, partitionByog matchBy skal have en tilsvarende ydre værdi for at hjælpe med at definere den aktuelle række, der skal arbejdes på, med følgende funktionsmåde:

    • Hvis der er nøjagtigt én tilsvarende ydre kolonne, bruges dens værdi.
    • Hvis der ikke er nogen tilsvarende ydre kolonne, så:
      • RANK bestemmer først alle kolonnerne orderBy, partitionByog matchBy, der ikke har en tilsvarende ydre kolonne.
      • For hver kombination af eksisterende værdier for disse kolonner i RANK overordnede kontekst evalueres RANK, og der returneres en række.
      • RANKendelige output er et rangeringsnummer.
  • Hvis matchBy er til stede, forsøger RANK at bruge kolonner i matchBy og partitionBy til at idenfity den aktuelle række.

  • Hvis de kolonner, der er angivet i orderBy og partitionBy, ikke entydigt kan identificere hver række i relation, kan to eller flere rækker have samme rangering, og rangeringen bestemmes af parameteren ties.

  • RANK returnerer en tom værdi for det samlede antal rækker. Det anbefales, at du tester udtrykket grundigt.

  • RANK kan ikke sammenlignes med RANKX, da SUM sammenligner med SUMX.

  • reset kan kun bruges i visuelle beregninger og kan ikke bruges sammen med orderBy eller partitionBy. Hvis reset findes, kan axis angives, men relation kan ikke.

Eksempel 1 – beregnet kolonne

Følgende DAX forespørgsel:

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

Returnerer en tabel, der rangerer hvert geografi med det samme EnglishCountryRegionName efter deres StateProvinceName og City. Tomme orderBy kolonneværdier sorteres i slutningen.

Eksempel 2 – visuel beregning

Følgende visuelle beregning DAX forespørgsler:

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

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

Opret to kolonner, der rangerer hver måned efter det samlede salg, både inden for hvert år og hele historikken.

Skærmbilledet nedenfor viser den visuelle matrix og det første visuelle beregningsudtryk:

DAX visualiseringsberegning

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER