RANK
gælder for:beregnet kolonne
beregnet tabel
beregning af måling
visualisering
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:
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 , HIGHESTPARENT eller 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
,partitionBy
ogmatchBy
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
,partitionBy
ogmatchBy
, 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.
-
RANK bestemmer først alle kolonnerne
Hvis
matchBy
er til stede, forsøger RANK at bruge kolonner imatchBy
ogpartitionBy
til at idenfity den aktuelle række.Hvis de kolonner, der er angivet i
orderBy
ogpartitionBy
, ikke entydigt kan identificere hver række irelation
, 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 medorderBy
ellerpartitionBy
. Hvisreset
findes, kanaxis
angives, menrelation
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: