RANK
Van toepassing op:berekende kolomberekende tabelMeasureVisuele berekening
Retourneert de classificatie voor de huidige context binnen de opgegeven partitie, gesorteerd op de opgegeven volgorde. If een overeenkomst niet kan worden gevonden, wordt rankblank.
Syntaxis
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parameters
Term | Definitie |
---|---|
ties |
(Optioneel) Definieert hoe u de rangschikking kunt afhandelen wanneer twee or meer rijen zijn gekoppeld.
If opgegeven, is de ondersteunde value dense, or SKIP. If weggelaten: - Standaardwaarden voor SKIP |
relation |
(Optioneel) Een tabelexpressie waaruit de uitvoerrij wordt geretourneerd.
If opgegeven, moeten all kolommen in orderBy andpartitionBy afkomstig zijn.
If weggelaten: - orderBy moet expliciet worden opgegeven.: All orderBy andpartitionBy kolommen moeten volledig gekwalificeerde and afkomstig zijn uit één tabel.
: standaard ingesteld op ALLSELECTED() van all kolommen in orderBy andpartitionBy . |
axis |
(Optioneel) Een as in de visuele shape. Alleen beschikbaar in visuele berekeningen, and vervangt relation . |
orderBy |
(Optioneel) Een ORDERBY() component met de kolommen die define hoe elke partitie wordt gesorteerd.
If weggelaten: - relation moet expliciet worden opgegeven.
: standaard wordt elke kolom in relation gerangschikt die not al is opgegeven in partitionBy . |
blanks |
(Optioneel) Een opsomming die definieert hoe blankvalues moet worden verwerkt bij het sorteren.
De ondersteunde values zijn:
Opmerking: wanneer blanks and parameter lege waarden in ORDERBY() functie voor afzonderlijke expressies beide zijn opgegeven, heeft blanks voor afzonderlijke orderBy expressie prioriteit voor de relevante orderBy expressie, andorderBy expressies zonder blanks worden opgegeven, blanks parameter voor bovenliggende Window functie. |
partitionBy |
(Optioneel) Een PARTITIONBY() component met de kolommen die define hoe relation wordt gepartitioneerd.
If weggelaten, wordt relation behandeld als één partitie. |
matchBy |
(Optioneel) Een MATCHBY() component met de kolommen die define hoe gegevens overeenkomen and de huidige rij identificeren. |
reset |
(Optioneel) Alleen beschikbaar in visuele berekeningen. Hiermee wordt aangegeven if de berekening opnieuw wordt ingesteld and op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde values zijn: NONE , LOWESTPARENT , HIGHESTPARENT , or een geheel getal. Het gedrag is afhankelijk van het gehele getal sign: - If nul or weggelaten, wordt de berekening not opnieuw ingesteld. Gelijk aan NONE .
- If positief, identificeert het gehele getal de kolom die begint vanaf het hoogste, onafhankelijk van graan. HIGHESTPARENT is gelijk aan 1.
- If negatief, identificeert het gehele getal de kolom die begint vanaf het laagste getal ten opzichte van de huidige korrel. LOWESTPARENT is gelijk aan -1. |
value retourneren
Het rank getal voor de huidige context.
Opmerkingen
Elke
orderBy
,partitionBy
, andmatchBy
kolom moet een overeenkomende buitenste value hebben om de huidige rij waarop moet worden uitgevoerd te define, met het volgende gedrag:- If er precies één overeenkomstige buitenkolom is, wordt de value gebruikt.
-
If er geen overeenkomstige buitenste kolom is, gaat u als volgt te werk:
-
RANK bepaalt firstall
orderBy
,partitionBy
, andmatchBy
kolommen die geen overeenkomende buitenste kolom hebben. - Voor elke combinatie van bestaande values voor deze kolommen in RANK bovenliggende context wordt RANK geëvalueerd and een rij wordt geretourneerd.
- RANKuiteindelijke uitvoer is een rank getal.
-
RANK bepaalt firstall
If
matchBy
aanwezig is, probeert RANK kolommen inmatchBy
andpartitionBy
te gebruiken om de huidige rij te idenfiteit.If de kolommen die zijn opgegeven in
orderBy
andpartitionBy
elke rij inrelation
niet uniek kunnen identificeren, kunnen twee or meer rijen dezelfde rangschikking hebben and de rangschikking wordt bepaald door de parameter Ties.RANK retourneert een blankvalue voor totaalrijen. Het is raadzaam om uw expressie grondig te testen.
RANK vergelijkt not met RANKX als SUM vergelijkt met SUMX.
reset
kan alleen worden gebruikt in visuele berekeningen, and kan niet worden gebruikt in combinatie metorderBy
orpartitionBy
. Ifreset
aanwezig is, kanaxis
worden opgegeven, maarrelation
niet.
Voorbeeld 1: berekende kolom
De volgende DAX query:
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
Retourneert een tabel die elke geografie rangschikt met dezelfde EnglishCountryRegionName, op basis van hun StateProvinceName and City.
Blank
orderBy
kolom values aan het einde worden gesorteerd.
Voorbeeld 2: visuele berekening
De volgende visuele berekening DAX query's:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Maak twee kolommen die elke monthrank door de totale verkoop, beide binnen elke year, and de hele geschiedenis.
In de onderstaande schermopname ziet u de visualmatrix and de first visuele berekeningsexpressie: