ROWNUMBER

Platí pro:Calculated columnCalculated tableMeasureVisual calculation

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

Syntaxe

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

Parametry

Pojem definice
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:
  • 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ů.
  • 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 řádku 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 ROWNUMBER 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 ROWNUMBER se vyhodnotí hodnota ROWNUMBER a vrátí se řádek.
    • Konečný výstup funkce ROWNUMBER je sjednocením těchto řádků.
  • Pokud existuje více než jeden odpovídající vnější sloupec, vrátí se chyba.

Pokud <je k dispozici shodaBy> , funkce ROWNUMBER se pokusí použít sloupce v <atributu matchBy> a <partitionBy> k idenfity aktuálního řádku.
Pokud sloupce zadané v rámci <orderBy> a <partitionBy> nemohou jednoznačně identifikovat každý řádek ve <vztahu>, pak:

  • FUNKCE ROWNUMBER se pokusí najít nejmenší počet dalších sloupců potřebných k jednoznačné identifikaci každého řádku.
  • Pokud se tyto sloupce dají najít, funkce ROWNUMBER
    • Zkuste najít nejmenší počet dalších sloupců potřebných k jednoznačné identifikaci každého řádku.
    • Automaticky připojte tyto nové sloupce 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.

<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',
    "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í dotazy jazyka DAX pro výpočet vizuálu:

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:

Výpočet vizuálu DAX

INDEX
ORDERBY
PARTITIONBY
OKNO
HODNOST