HODNOST

Platí pro:Calculated columnCalculated tableMeasureVisual calculation

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é.

Syntaxe

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

Parametry

Pojem definice
osti (Volitelné) Definuje, jak zpracovat řazení, když jsou svázané dva nebo více řádků.
Pokud je tato hodnota zadaná, podporovaná hodnota je BUĎ DENSE, nebo SKIP.
Pokud tento parametr vynecháte:
- Výchozí hodnota přeskočit
Vztah (Volitelné) Výraz tabulky, ze kterého se vrátí výstupní řádek.
Pokud je zadáno, musí z něj pocházet všechny sloupce v <pořadíBy> a <partitionBy> .
Pokud tento parametr vynecháte:
– <orderBy> musí být explicitně zadáno.
– 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 <pořadíBy> a <partitionBy>.
osa (Volitelné) Osa ve vizuálním obrazci. K dispozici pouze ve vizuálních výpočtech <a nahrazuje relaci>.
Orderby (Volitelné) Klauzule ORDERBY() obsahující sloupce definující způsob řazení jednotlivých oddílů.
Pokud tento parametr vynecháte,
<musí být explicitně zadán vztah>.
– Výchozí nastavení řazení podle každého sloupce ve <vztahu> , který ještě není zadán v <partitionBy>.
Mezery (Volitelné) Výčet, který definuje, jak zpracovat prázdné hodnoty při řazení.
Podporované hodnoty jsou:
  • KEEP (výchozí hodnota), kde chování číselných hodnot je prázdné hodnoty seřazené mezi nulou a zápornými hodnotami. Chování řetězců je prázdné hodnoty seřazené před všemi řetězci, včetně prázdných řetězců.
  • PRVNÍ, prázdné hodnoty jsou vždy seřazené na začátku bez ohledu na vzestupné nebo sestupné pořadí řazení.
  • POSLEDNÍ, prázdné hodnoty jsou vždy seřazené na konci bez ohledu na vzestupné nebo sestupné pořadí řazení.

Všimněte si, že pokud <jsou zadány> prázdné hodnoty parametru a prázdné hodnoty ve funkci ORDERBY() u jednotlivých výrazů, <blanky u jednotlivých výrazů> orderBy mají prioritu pro příslušný výraz orderBy a výrazy orderBy bez <zadání prázdných> hodnot budou respektovat <parametr prázdných> hodnot v nadřazené funkci Window.
partitionBy (Volitelné) Klauzule PARTITIONBY() obsahující sloupce definující způsob <rozdělení relace> .
Pokud tento parametr vynecháte, <považuje se relace> za jeden oddíl.
matchBy (Volitelné) Klauzule POZVYHLEDAT() obsahující sloupce, které definují, jak se shodují s daty, a identifikují aktuální řádek.
resetování (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. Přijaté hodnoty jsou: NONE, LOWESTPARENT, HIGHESTPARENT nebo celé číslo. Chování závisí na celočíselném znaménku:
– Pokud je nula nebo vynechána, výpočet se neobnoví. Ekvivalent funkce NONE.
- Pokud je kladné, celé číslo identifikuje sloupec začínající od nejvyššího, nezávisle na agregačním intervalu. FUNKCE HIGHESTPARENT je ekvivalentní hodnotě 1.
- Pokud je záporné, celé číslo identifikuje sloupec počínaje nejnižší hodnotou vzhledem k aktuálnímu agregačnímu intervalu. NEJNIŽŠÍPARENT je ekvivalentní hodnotě -1.

Vrácená hodnota

Číslo pořadí pro aktuální kontext.

Poznámky

  • Každý <sloupec orderBy>, <partitionBy> a <matchBy> musí mít odpovídající vnější hodnotu, aby bylo možné 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:
      • Funkce RANK nejprve určí všechny <sloupce orderBy>, <partitionBy> a <matchBy> , které nemají odpovídající vnější sloupec.
      • Pro každou kombinaci existujících hodnot pro tyto sloupce v nadřazeném kontextu RANK se vyhodnotí funkce RANK a vrátí se řádek.
      • Konečný výstup funkce RANK je číslo pořadí.
  • Pokud <je k dispozici shodaBy> , funkce RANK se pokusí použít sloupce v <matchBy> a <partitionBy> k idenfity aktuálního řádku.

  • Pokud sloupce zadané v pořadíBy <> a <partitionBy> nemohou jednoznačně identifikovat každý řádek ve <vztahu>, pak dva nebo více řádků může mít stejné pořadí a pořadí bude určeno parametrem vazby.

  • Funkce RANK vrátí prázdnou hodnotu pro řádky souhrnu. Doporučujeme výraz důkladně otestovat.

  • Funkce RANK se nerovná s funkcí RANKX, protože funkce SUMA porovnává s funkcí SUMX.

  • <Resetování> lze použít pouze ve vizuálních výpočtech a nelze ho použít v kombinaci s <orderBy> nebo <partitionBy>. Pokud <je k dispozici resetování>, je možné zadat osu>, <ale <relační nemůže>.

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é <hodnoty sloupce orderBy> jsou seřazené na konci.

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

Následující dotazy jazyka DAX pro výpočet vizuálu:

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čet vizuálu DAX

INDEX
ORDERBY
PARTITIONBY
OKNO
ROWNUMBER