Del via


RANK

gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning

Returnerer rangeringen for gjeldende kontekst i den angitte partisjonen, sortert etter den angitte rekkefølgen. Hvis du ikke finner et treff, er rangeringen tom.

Syntaks

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

Parametere

Vilkår Definisjon
ties (Valgfritt) Definerer hvordan rangeringen skal håndteres når to eller flere rader er bundet.
Hvis angitt, er den støttede verdien enten DENSE eller SKIP.
Hvis utelatt:
– Standarder for SKIP
relation (Valgfritt) Et tabelluttrykk som utdataraden returneres fra.
Hvis angitt, må alle kolonnene i orderBy og partitionBy komme fra den.
Hvis utelatt:
- orderBy må angis eksplisitt.
– Alle orderBy og partitionBy kolonnene må være fullstendig kvalifiserte og komme fra én enkelt tabell.
– standarder for ALLSELECTED() for alle kolonner i orderBy og partitionBy.
axis (Valgfritt) En akse i den visuelle figuren. Bare tilgjengelig i visuelle beregninger, og erstatter relation.
orderBy (Valgfritt) En ORDERBY() setning som inneholder kolonnene som definerer hvordan hver partisjon sorteres.
Hvis utelatt:
- relation må angis eksplisitt.
– Standarder for bestilling av hver kolonne i relation som ikke allerede er angitt i partitionBy.
blanks (Valgfritt) En opplisting som definerer hvordan du håndterer tomme verdier når du sorterer relation eller axis.
De støttede verdiene er:
  • DEFAULT (standardverdien), der virkemåten for numeriske verdier er tomme verdier, er sortert mellom null og negative verdier. Virkemåten for strenger er tomme verdier ordnes før alle strenger, inkludert tomme strenger.
  • FIRSTer blanks alltid sortert i begynnelsen, uavhengig av stigende eller synkende sorteringsrekkefølge.
  • LASTer tomme celler alltid ordnet på slutten, uavhengig av stigende eller synkende sorteringsrekkefølge.

Obs! Når blanks parameteren og tomrommene i ORDERBY()-funksjonen på individuelle uttrykk er angitt, prioriteres blanks enkelt orderBy-uttrykk for det relevante orderBy-uttrykket, og orderBy-uttrykk uten at blanks angis, respekterer blanks parameteren for den overordnede funksjonen.
partitionBy (Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som definerer hvordan relation partisjoneres. Hvis utelatt, behandles relation som én enkelt partisjon.
matchBy (Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som definerer hvordan dataene skal samsvare og identifisere gjeldende rad.
reset (Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir om beregningen tilbakestilles, og på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatte verdier er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT, HIGHESTPARENTeller et heltall. Virkemåten avhenger av heltallstegnet:
– Hvis null eller utelatt, tilbakestilles ikke beregningen. Tilsvarer NONE.
– Hvis det er positivt, identifiserer heltallet kolonnen fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– Hvis negativt, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1.

Returverdi

Rangeringsnummeret for gjeldende kontekst.

Merknader

  • Hver orderBy, partitionByog matchBy kolonne må ha en tilsvarende ytre verdi for å definere gjeldende rad som skal brukes, med følgende virkemåte:

    • Hvis det er nøyaktig én tilsvarende ytre kolonne, brukes verdien.
    • Hvis det ikke finnes noen tilsvarende ytre kolonne, gjør du følgende:
      • RANK bestemmer først alle kolonnene orderBy, partitionByog matchBy som ikke har noen tilsvarende ytre kolonne.
      • For hver kombinasjon av eksisterende verdier for disse kolonnene i RANK overordnede kontekst, evalueres RANK og en rad returneres.
      • RANKendelige utdata er et rangeringsnummer.
  • Hvis matchBy finnes, prøver RANK å bruke kolonner i matchBy og partitionBy til å innrykke gjeldende rad.

  • Hvis kolonnene som er angitt i orderBy og partitionBy ikke unikt kan identifisere hver rad i relation, kan to eller flere rader ha samme rangering, og rangeringen bestemmes av båndparameteren.

  • RANK returnerer en tom verdi for totalt antall rader. Det anbefales at du tester uttrykket grundig.

  • RANK sammenlignes ikke med RANKX som SUM sammenlignet med SUMX.

  • reset kan bare brukes i visuelle beregninger, og kan ikke brukes sammen med orderBy eller partitionBy. Hvis reset finnes, kan axis angis, men relation kan ikke.

Eksempel 1 – beregnet kolonne

Følgende DAX spørring:

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 tabell som rangerer hver geografi med samme EnglishCountryRegionName, etter StateProvinceName og City. Tomme orderBy kolonneverdier sorteres på slutten.

Eksempel 2 – visuell beregning

Følgende visuelle beregning DAX spørringer:

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

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

Opprett to kolonner som rangerer hver måned etter det totale salget, både i hvert år og hele loggen.

Skjermbildet nedenfor viser den visuelle matrisen og det første visuelle beregningsuttrykket:

DAX beregning av visualobjekter

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER