Zdieľať cez


RANK

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuálového výpočtu

Vráti poradie aktuálneho kontextu v rámci zadanej oblasti zoradené podľa zadaného poradia. Ak sa zhoda nedá nájsť, poradie je prázdne.

Syntax

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

Parametre

Termín Definícia
ties (Voliteľné) Definuje spôsob narábania s poradím v prípade, že sú spojené dva alebo viaceré riadky.
Ak je zadaná, podporovaná hodnota je buď DENSE, alebo SKIP.
Ak sa vynechá:
– predvolené hodnoty na preskočiť
relation (Voliteľné) Výraz tabuľky, z ktorého sa vráti výstupný riadok.
Ak je zadaný, musia z neho pochádzať všetky stĺpce v orderBy a partitionBy.
Ak tento argument vynecháte:
- orderBy musí byť explicitne zadaný.
– všetky stĺpce orderBy a partitionBy musia byť plne kvalifikované a musia pochádzať z jednej tabuľky.
– predvolene sa použije ALLSELECTED() všetkých stĺpcov v orderBy a partitionBy.
axis (Voliteľné) Os v tvare vizuálu. K dispozícii iba vo výpočtoch vizuálu a nahrádza relation.
orderBy (Voliteľné) Klauzula ORDERBY() obsahujúca stĺpce, ktoré definujú, ako sa má každá oblasť zoradiť.
Ak tento argument vynecháte:
- relation musí byť explicitne zadaný.
– predvolene sa zoradí podľa každého stĺpca v relation, ktorý ešte nie je zadaný v partitionBy.
blanks (Voliteľné) Enumerácia, ktorá definuje spôsob narábania s prázdnymi hodnotami pri zoraďovaní relation alebo axis.
Podporované hodnoty sú:
  • DEFAULT (predvolená hodnota), kde sú správanie číselných hodnôt prázdne hodnoty zoradené medzi nulami a záporné hodnoty. Správanie reťazcov je prázdne hodnoty zoradené pred všetkými reťazcami vrátane prázdnych reťazcov.
  • FIRST, prázdne hodnoty sa vždy zoraďujú na začiatku bez ohľadu na vzostupné alebo zostupné poradie zoradenia.
  • LAST, prázdne hodnoty sa vždy zoraďujú na konci bez ohľadu na vzostupné alebo zostupné poradie zoradenia.

Všimnite si, že keď sú v ORDERBY() funkcie pri jednotlivých výrazoch zadané hodnoty blanksblanks na výraze orderBy má prednosť pre príslušný výraz orderBy a výrazy orderBy bez blanks zadania zachová parameter blanks v nadradenej funkcii.
partitionBy (Voliteľné) Klauzula PARTITIONBY() obsahujúca stĺpce, ktoré definujú spôsob rozdelenia relation. Ak sa vynechá, relation sa považuje za jednu oblasť.
matchBy (Voliteľné) Klauzula MATCHBY() obsahujúca stĺpce, ktoré definujú, ako sa majú zhodovať s údajmi a identifikovať aktuálny riadok.
reset (Voliteľné) K dispozícii iba vo výpočtoch vizuálu. Udáva, či sa výpočet resetuje a na akej úrovni hierarchie stĺpcov tvaru vizuálu. Prijaté hodnoty sú: odkaz na pole na stĺpec v aktuálnom tvare vizuálu, NONE (predvolené), LOWESTPARENT, HIGHESTPARENTalebo celé číslo. Správanie závisí od celočíselného znamienka:
– Ak je hodnota nula alebo je vynechaná, výpočet sa nevynuluje. Zodpovedá NONE.
– ak je kladné, celé číslo identifikuje stĺpec začínajúci od najvyššej, nezávisle od zrna. HIGHESTPARENT zodpovedá 1.
– ak je záporné, celé číslo identifikuje stĺpec začínajúci od najnižšej hodnoty vo vzťahu k aktuálnemu zrnu. LOWESTPARENT je ekvivalentom čísla -1.

Vrátená hodnota

Číslo poradia aktuálneho kontextu.

Poznámky

  • Každý orderBy, partitionBya matchBy musí mať zodpovedajúcu vonkajšiu hodnotu, ktorá pomáha definovať aktuálny riadok, pre ktorý sa má vykonať prevádzka, s nasledujúcim správaním:

    • Ak existuje presne jeden zodpovedajúci vonkajší stĺpec, použije sa jeho hodnota.
    • Ak neexistuje žiadny zodpovedajúci vonkajší stĺpec, potom:
      • RANK najprv určí všetky orderBy, partitionBya matchBy stĺpce, ktoré nemajú zodpovedajúci vonkajší stĺpec.
      • Pre každú kombináciu existujúcich hodnôt pre tieto stĺpce v RANK nadradenom kontexte sa vyhodnotí RANK a vráti sa riadok.
      • RANKkonečný výstup je číslo poradia.
  • Ak existuje matchBy, RANK sa pokúsi použiť stĺpce v matchBy a partitionBy na idenfity aktuálneho riadka.

  • Ak stĺpce zadané v rámci orderBy a partitionBy nemôžu jednoznačne identifikovať každý riadok v relation, potom dva alebo viaceré riadky môžu mať rovnaké poradie a poradie sa určí parametrom spojenia.

  • RANK vráti prázdnu hodnotu pre celkový počet riadkov. Výraz by ste mali otestovať dôkladne.

  • RANK sa neporovnáva s RANKX, pretože SUM sa porovnáva s SUMX.

  • reset možno použiť iba vo vizuálnych výpočtoch a nemožno ho použiť v kombinácii s orderBy alebo partitionBy. Ak je prítomná reset, možno zadať axis ale relation nedá.

Príklad 1 – vypočítaný stĺpec

Nasledujúci DAX dotaz:

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

Vráti tabuľku, ktorá vyraďuje každú geografickú oblasť podľa toho istého anglického názvukrajinového regiónu, podľa ich názvov StateProvinceName (NázovŠtátuProvincie) a City (Mesto). Prázdne orderBy hodnoty stĺpcov sú zoradené na konci.

Príklad 2 – výpočet vizuálu

Nasledujúci výpočet vizuálu DAX dotazy:

SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

Vytvorte dva stĺpce, ktoré sa každý mesiac zoraďujú podľa celkového predaja v rámci každého roka, ako aj celej histórie.

Snímka obrazovky nižšie znázorňuje maticu vizuálu a prvý výraz výpočtu vizuálu:

výpočtu vizuálu

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER