RANK
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuá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ú:
Všimnite si, že keď sú v ORDERBY() funkcie pri jednotlivých výrazoch zadané hodnoty blanks blanks 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 , HIGHESTPARENT alebo 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
,partitionBy
amatchBy
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
,partitionBy
amatchBy
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.
-
RANK najprv určí všetky
Ak existuje
matchBy
, RANK sa pokúsi použiť stĺpce vmatchBy
apartitionBy
na idenfity aktuálneho riadka.Ak stĺpce zadané v rámci
orderBy
apartitionBy
nemôžu jednoznačne identifikovať každý riadok vrelation
, 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 sorderBy
alebopartitionBy
. Ak je prítomnáreset
, možno zadaťaxis
alerelation
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