Lezen in het Engels

Delen via


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

DAX
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 orderByandpartitionBy afkomstig zijn.
If weggelaten:
- orderBy moet expliciet worden opgegeven.
: AllorderByandpartitionBy kolommen moeten volledig gekwalificeerde and afkomstig zijn uit één tabel.
: standaard ingesteld op ALLSELECTED() van all kolommen in orderByandpartitionBy.
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:
  • KEEP (de standaardinstelling value), waarbij het gedrag voor numerieke valuesblankvalues tussen nul and negatieve valuesworden gerangschikt. Het gedrag voor tekenreeksen wordt blankvalues worden geordend voordat all tekenreeksen, inclusief lege tekenreeksen.
  • FIRSTworden lege waarden altijd op het begin gerangschikt, ongeacht oplopende or aflopende sorteervolgorde.
  • LASTworden lege waarden altijd aan het einde gesorteerd, ongeacht oplopende or aflopende sorteervolgorde.

Opmerking: wanneer blanksand 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 firstallorderBy, 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.
  • If matchBy aanwezig is, probeert RANK kolommen in matchByandpartitionBy te gebruiken om de huidige rij te idenfiteit.

  • If de kolommen die zijn opgegeven in orderByandpartitionBy elke rij in relationniet 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 met orderByorpartitionBy. If reset aanwezig is, kan axis worden opgegeven, maar relation niet.

Voorbeeld 1: berekende kolom

De volgende DAX query:

DAX
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:

DAX
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:

DAX visuele berekening

INDEX
ORDERBY
PARTITIONBY
WINDOW
ROWNUMBER