RANK
platí pro:Počítaný sloupec
Počítaná tabulka
míra
vizuální
Vrátí pořadí aktuálního kontextu v zadaném oddílu seřazené podle zadaného pořadí. Pokud nebyla nalezena shoda, pak je pořadí prázdné.
Syntax
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametry
Semestr | Definice |
---|---|
ties |
(Volitelné) Definuje, jak zpracovat řazení, když jsou svázané dva nebo více řádků.
Pokud je zadána, podporovaná hodnota je BUĎ DENSE, nebo SKIP. Pokud tento parametr vynecháte: – výchozí hodnota přeskočit |
relation |
(Volitelné) Výraz tabulky, ze kterého se vrátí výstupní řádek.
Pokud je zadána, musí z něj pocházet všechny sloupce v orderBy a partitionBy .
Pokud tento parametr vynecháte: - orderBy musí být explicitně zadán.– Všechny sloupce orderBy a partitionBy musí být plně kvalifikované a pocházejí z jedné tabulky.
– výchozí hodnota je ALLSELECTED() všech sloupců v orderBy a partitionBy . |
axis |
(Volitelné) Osa ve vizuálním obrazci. Dostupné pouze ve vizuálních výpočtech a nahrazuje relation . |
orderBy |
(Volitelné) Klauzule ORDERBY() obsahující sloupce definující způsob řazení jednotlivých oddílů.
Pokud tento parametr vynecháte: - relation musí být explicitně zadán.
– Výchozí nastavení řazení podle každého sloupce v relation , který ještě není zadán v partitionBy . |
blanks |
(Volitelné) Výčet, který definuje, jak zpracovat prázdné hodnoty při řazení relation nebo axis .
Podporované hodnoty jsou:
Poznámka: Pokud je zadán parametr blanks a prázdné hodnoty ve funkci ORDERBY() () u jednotlivých výrazů, blanks pro jednotlivý výraz orderBy má prioritu pro příslušný výraz orderBy a výrazy orderBy bez blanks budou respektovat parametr blanks nadřazené funkce. |
partitionBy |
(Volitelné) Klauzule relation se považuje za jeden oddíl. |
matchBy |
(Volitelné) MATCHBY() klauzule obsahující sloupce, které definují, jak se shodují s daty a identifikují aktuální řádek. |
reset |
(Volitelné) K dispozici pouze ve vizuálních výpočtech. Určuje, jestli se výpočet resetuje a na jaké úrovni hierarchie sloupců obrazce vizuálu. Akceptované hodnoty jsou: odkaz na pole na sloupec v aktuálním obrazci vizuálu, NONE (výchozí), LOWESTPARENT , HIGHESTPARENT nebo celé číslo. Toto chování závisí na celočíselném znaménku: – pokud je nula nebo vynechána, výpočet se neobnoví. Ekvivalent NONE .
– pokud je kladné, celé číslo identifikuje sloupec začínající od nejvyššího, nezávisle na agregačním intervalu. HIGHESTPARENT odpovídá 1.
– pokud je záporné, celé číslo identifikuje sloupec počínaje nejnižší hodnotou vzhledem k aktuálnímu agregačnímu intervalu. LOWESTPARENT je ekvivalentní -1. |
Návratová hodnota
Číslo pořadí pro aktuální kontext.
Poznámky
Každý sloupec
orderBy
,partitionBy
amatchBy
musí mít odpovídající vnější hodnotu, která pomůže definovat aktuální řádek, na kterém se má pracovat, s následujícím chováním:- Pokud je právě jeden odpovídající vnější sloupec, použije se jeho hodnota.
- Pokud neexistuje odpovídající vnější sloupec, postupujte takto:
-
RANK nejprve určí všechny sloupce
orderBy
,partitionBy
amatchBy
, které nemají odpovídající vnější sloupec. - Pro každou kombinaci existujících hodnot pro tyto sloupce v RANK nadřazeného kontextu se vyhodnotí RANK a vrátí se řádek.
- RANKkonečný výstup je číslo pořadí.
-
RANK nejprve určí všechny sloupce
Pokud
matchBy
existuje, RANK se pokusí použít sloupce vematchBy
apartitionBy
k přizpůsobení aktuálního řádku.Pokud sloupce zadané v rámci
orderBy
apartitionBy
nemohou jednoznačně identifikovat každý řádek vrelation
, pak dva nebo více řádků může mít stejné pořadí a pořadí bude určeno parametrem vazby.RANK vrátí prázdnou hodnotu pro řádky souhrnu. Doporučujeme výraz důkladně otestovat.
RANK se nerovná RANKX, protože SUM porovnává s SUMX.
reset
lze použít pouze ve vizuálních výpočtech a nelze jej použít v kombinaci sorderBy
nebopartitionBy
. Pokud jereset
, je možné zadataxis
, alerelation
nelze.
Příklad 1 – počítaný sloupec
Následující dotaz 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
Vrátí tabulku, která seřadí každou zeměpisnou oblast se stejným názvem EnglishCountryRegionName podle stateProvinceName a City. Prázdné orderBy
hodnoty sloupců jsou seřazené na konci.
Příklad 2 – výpočet vizuálu
Následující vizuální výpočet DAX dotazy:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Vytvořte dva sloupce, které každý měsíc řadí podle celkového prodeje, a to jak v rámci každého roku, tak v celé historii.
Následující snímek obrazovky ukazuje vizuální matici a první výraz výpočtu vizuálu:
výpočtu vizuálu