Del via


RANGERING

Gjelder beregnet beregning av beregnet tabellfor beregnet kolonne

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

Term Definisjon
like forekomster (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
Forhold (Valgfritt) Et tabelluttrykk som utdataraden returneres fra.
Hvis angitt, må alle kolonner i <orderBy> og <partitionBy> komme fra den.
Hvis utelatt:
– <orderBy> må angis eksplisitt.
– Alle <orderBy> - og <partitionBy-kolonner> må være fullstendig kvalifiserte og komme fra én enkelt tabell.
– Standarder for ALLSELECTED() for alle kolonner i <orderBy> og <partitionBy>.
akse (Valgfritt) En akse i den visuelle figuren. Bare tilgjengelig i visuelle beregninger, og erstatter <relasjon>.
Orderby (Valgfritt) En ORDERBY()-setningsdel som inneholder kolonnene som definerer hvordan hver partisjon sorteres.
Hvis utelatt:
- <relasjon> må angis eksplisitt.
– Standarder for bestilling av hver kolonne i <relasjon> som ikke allerede er angitt i <partitionBy>.
Tomme (Valgfritt) En opplisting som definerer hvordan du håndterer tomme verdier når du sorterer.
De støttede verdiene er:
  • KEEP (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.
  • FØRST er tomme alltid ordnet i begynnelsen, uavhengig av stigende eller synkende sorteringsrekkefølge.
  • LAST, blanks er alltid sortert på slutten, uavhengig av stigende eller synkende sorteringsrekkefølge.

Vær oppmerksom på at når <tomme> parametere og tomme verdier i ORDERBY()-funksjonen på enkeltuttrykk begge er angitt, prioriteres> tomme verdier for det individuelle orderBy-uttrykket for det relevante orderBy-uttrykket, og orderBy-uttrykk uten <tomme verdier som angis>, <vil overholde <blanks-parameteren> på overordnet Vindu-funksjon.
partitionBy (Valgfritt) En PARTITIONBY()-setningsdel som inneholder kolonnene som definerer hvordan <relasjonen> partisjoneres.
Hvis den utelates, <behandles relasjonen> som én enkelt partisjon.
matchBy (Valgfritt) En MATCHBY()-setningsdel som inneholder kolonnene som definerer hvordan dataene skal samsvare og identifisere gjeldende rad.
Tilbakestille (Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir om beregningen tilbakestilles, og på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatte verdier er: NONE, LOWESTPARENT, HIGHESTPARENT eller et heltall. Virkemåten avhenger av heltallstegnet:
– Hvis null eller utelatt, tilbakestilles ikke beregningen. Tilsvarer INGEN.
– Hvis det er positivt, identifiserer heltallet kolonnen fra det høyeste, uavhengige kornet. HIGHESTPARENT tilsvarer 1.
– Hvis negativt, identifiserer heltallet kolonnen som starter fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1.

Returverdi

Rangeringsnummeret for gjeldende kontekst.

Merknader

  • Hver <orderBy>-, <partitionBy>- og <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 <orderBy>-, <partitionBy>- og <matchBy-kolonner> som ikke har noen tilsvarende ytre kolonne.
      • For hver kombinasjon av eksisterende verdier for disse kolonnene i OVERORDNET RANGERING-kontekst evalueres RANG og en rad returneres.
      • Rangerings endelige utdata er et rangeringsnummer.
  • Hvis <matchBy> finnes, prøver RANK å bruke kolonner i <matchBy> og <partitionBy> for å innrykke gjeldende rad.

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

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

  • RANG sammenlignes ikke med RANKX som SUMMER sammenlignet med SUMX.

  • <tilbakestilling> kan bare brukes i visuelle beregninger, og kan ikke brukes i kombinasjon med <orderBy> eller <partitionBy>. Hvis <tilbakestilling> finnes, kan aksen> angis, <men <relasjonen> 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 DAX-spørringer for visualobjektberegning:

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-visualobjektberegning

INDEKS
ORDERBY
PARTITIONBY
VINDUET
RADNUMMER