RANK
gjelder:beregnet kolonne
beregnet tabell
måle
visualobjektberegning
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:
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 , HIGHESTPARENT eller 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
,partitionBy
ogmatchBy
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
,partitionBy
ogmatchBy
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.
-
RANK bestemmer først alle kolonnene
Hvis
matchBy
finnes, prøver RANK å bruke kolonner imatchBy
ogpartitionBy
til å innrykke gjeldende rad.Hvis kolonnene som er angitt i
orderBy
ogpartitionBy
ikke unikt kan identifisere hver rad irelation
, 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 medorderBy
ellerpartitionBy
. Hvisreset
finnes, kanaxis
angis, menrelation
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: