Delen via


RANK

Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening

Retourneert de classificatie voor de huidige context binnen de opgegeven partitie, gesorteerd op de opgegeven volgorde. Als een overeenkomst niet kan worden gevonden, is rangschikking leeg.

Syntaxis

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

Parameters

Term Definitie
ties (Optioneel) Definieert hoe de rangschikking moet worden afgehandeld wanneer twee of meer rijen zijn gekoppeld.
Indien opgegeven, is de ondersteunde waarde DENSE of SKIP.
Als u dit weglaat:
- Standaardwaarden voor OVERSLAAN
relation (Optioneel) Een tabelexpressie waaruit de uitvoerrij wordt geretourneerd.
Indien opgegeven, moeten alle kolommen in orderBy en partitionBy afkomstig zijn.
Indien weggelaten:
- orderBy moet expliciet worden opgegeven.
: alle kolommen orderBy en partitionBy moeten volledig zijn gekwalificeerd en afkomstig zijn van één tabel.
: standaard ingesteld op ALLSELECTED() van alle kolommen in orderBy en partitionBy.
axis (Optioneel) Een as in de visuele shape. Alleen beschikbaar in visuele berekeningen en vervangt relation.
orderBy (Optioneel) Een ORDERBY() component met de kolommen die definiëren hoe elke partitie wordt gesorteerd.
Indien weggelaten:
- relation moet expliciet worden opgegeven.
: standaardvolgorde op elke kolom in relation die nog niet is opgegeven in partitionBy.
blanks (Optioneel) Een opsomming waarmee wordt gedefinieerd hoe lege waarden moeten worden verwerkt bij het sorteren van de relation of axis.
De ondersteunde waarden zijn:
  • DEFAULT (de standaardwaarde), waarbij het gedrag voor numerieke waarden lege waarden is tussen nul en negatieve waarden. Het gedrag voor tekenreeksen is lege waarden die vóór alle tekenreeksen worden geordend, inclusief lege tekenreeksen.
  • FIRSTworden lege waarden altijd op het begin gerangschikt, ongeacht de aflopende of aflopende sorteervolgorde.
  • LAST, worden lege waarden altijd aan het einde gerangschikt, ongeacht de aflopende of aflopende sorteervolgorde.

Opmerking: wanneer de blanks parameter en lege waarden in de ORDERBY() functie voor afzonderlijke expressies beide zijn opgegeven, blanks voor de afzonderlijke orderBy-expressie prioriteit krijgt voor de relevante orderBy-expressie en orderBy-expressies zonder dat blanks worden opgegeven, worden de blanks parameter voor de bovenliggende functie uitgevoerd.
partitionBy (Optioneel) Een PARTITIONBY() component met de kolommen die bepalen hoe relation wordt gepartitioneerd. Als u dit weglaat, wordt relation behandeld als één partitie.
matchBy (Optioneel) Een MATCHBY() component met de kolommen die bepalen hoe gegevens overeenkomen en de huidige rij identificeren.
reset (Optioneel) Alleen beschikbaar in visuele berekeningen. Geeft aan of de berekening opnieuw wordt ingesteld en op welk niveau van de kolomhiërarchie van de visualshape. Geaccepteerde waarden zijn: een veldreferentie naar een kolom in de huidige visualshape, NONE (standaard), LOWESTPARENT, HIGHESTPARENTof een geheel getal. Het gedrag is afhankelijk van het gehele getalteken:
- Als nul of weggelaten, wordt de berekening niet opnieuw ingesteld. Gelijk aan NONE.
- Als positief, identificeert het gehele getal de kolom die begint van het hoogste, onafhankelijk van graan. HIGHESTPARENT is gelijk aan 1.
- Als dit negatief is, identificeert het gehele getal de kolom die begint vanaf het laagste getal, ten opzichte van de huidige korrel. LOWESTPARENT is gelijk aan -1.

Retourwaarde

Het rangnummer voor de huidige context.

Opmerkingen

  • Elke orderBy, partitionByen matchBy kolom moeten een overeenkomende buitenste waarde hebben om de huidige rij te definiëren waarop moet worden uitgevoerd, met het volgende gedrag:

    • Als er precies één corresponderende buitenkolom is, wordt de waarde ervan gebruikt.
    • Als er geen overeenkomstige buitenste kolom is, gaat u als volgt te werk:
      • RANK bepaalt eerst alle orderBy, partitionByen matchBy kolommen die geen bijbehorende buitenste kolom hebben.
      • Voor elke combinatie van bestaande waarden voor deze kolommen in RANK bovenliggende context wordt RANK geëvalueerd en wordt er een rij geretourneerd.
      • RANKuiteindelijke uitvoer is een rangnummer.
  • Als matchBy aanwezig is, probeert RANK kolommen in matchBy te gebruiken en partitionBy om de huidige rij te idenf.

  • Als de kolommen die zijn opgegeven in orderBy en partitionBy elke rij in relationniet uniek kunnen identificeren, hebben twee of meer rijen mogelijk dezelfde rangschikking en wordt de rangschikking bepaald door de parameter Ties.

  • RANK retourneert een lege waarde voor totaalrijen. Het is raadzaam om uw expressie grondig te testen.

  • RANK vergelijkt niet met RANKX, omdat SUM zich verhoudt tot SUMX.

  • reset kan alleen worden gebruikt in visuele berekeningen en kan niet worden gebruikt in combinatie met orderBy of partitionBy. Als reset aanwezig is, kan axis worden opgegeven, maar relation 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 en Plaats. Lege orderBy kolomwaarden worden aan het einde 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 maand rangschikken op basis van de totale verkoop, zowel binnen elk jaar als de hele geschiedenis.

In de onderstaande schermopname ziet u de visualmatrix en de eerste expressie voor het berekenen van de visual:

DAX visuele berekening

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER