Sdílet prostřednictvím


ROWNUMBER

platí pro:Počítaný sloupecPočítaná tabulkamíravizuální

Vrátí jedinečné pořadí aktuálního kontextu v zadaném oddílu seřazené podle zadaného pořadí. Pokud nelze najít shodu, je argument číslo řádku prázdný.

Syntaxe

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

Parametry

Pojem definice
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:
  • DEFAULT (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ů.
  • FIRST, prázdné hodnoty jsou vždy seřazeny na začátku bez ohledu na vzestupné nebo sestupné pořadí řazení.
  • LAST, prázdné hodnoty jsou vždy seřazeny na konci bez ohledu na vzestupné nebo sestupné pořadí řazení.

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 () obsahující sloupce definující způsob rozdělení . Pokud tento parametr vynecháte, 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, HIGHESTPARENTnebo 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 řádku pro aktuální kontext.

Poznámky

Každý sloupec orderBy, partitionBya matchBy 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:
    • ROWNUMBER nejprve určí všechny sloupce orderBy, partitionBya matchBy, které nemají odpovídající vnější sloupec.
    • Pro každou kombinaci existujících hodnot pro tyto sloupce v ROWNUMBER nadřazeného kontextu se vyhodnotí ROWNUMBER a vrátí se řádek.
    • ROWNUMBERkonečný výstup je sjednocením těchto řádků.
  • Pokud existuje více než jeden odpovídající vnější sloupec, vrátí se chyba.

Pokud matchBy existuje, ROWNUMBER se pokusí použít sloupce ve matchBy a partitionBy k přizpůsobení aktuálního řádku. Pokud sloupce zadané v orderBy a partitionBy nemohou jednoznačně identifikovat každý řádek v relation, pak:

  • ROWNUMBER se pokusí najít nejmenší počet dalších sloupců potřebných k jednoznačné identifikaci každého řádku.
  • Pokud tyto sloupce najdete, ROWNUMBER
    • Zkuste najít nejmenší počet dalších sloupců potřebných k jednoznačné identifikaci každého řádku.
    • Automaticky tyto nové sloupce připojte k klauzuli orderBy.
    • Seřaďte jednotlivé oddíly pomocí této nové sady sloupců orderBy.
  • Pokud tyto sloupce nelze najít a funkce zjistí vazbu za běhu, vrátí se chyba.

reset lze použít pouze ve vizuálních výpočtech a nelze jej použít v kombinaci s orderBy nebo partitionBy. Pokud je reset, je možné zadat axis, ale relation nelze.

Příklad 1 – počítaný sloupec

Následující dotaz DAX:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Vrátí tabulku, která jednoznačně řadí každou zeměpisnou oblast se stejným názvem EnglishCountryRegionName podle stateProvinceName a City.

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

Následující vizuální výpočet DAX dotazy:

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

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

Vytvořte dva sloupce, které každý měsíc jedinečně ř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:

DAX výpočtu vizuálu

INDEX ORDERBY PARTITIONBY WINDOW RANK