Zdieľať cez


ROWNUMBER (ČÍSLO RIADKA)

Vzťahuje sa na: Vypočítaný stĺpec Vypočítaná tabuľka Výpočet mierky Vizuál

Vráti jedinečné poradie pre aktuálny kontext v rámci zadanej oblasti, zoradené podľa zadaného poradia. Ak sa zhoda nedá nájsť, potom číslo riadka je prázdne.

Syntax

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

Parametre

Obdobie Definícia
vzťah (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 <parametri orderBy> a <partitionBy> .
Ak sa vynechá:
- <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 nastaví na ALLSELECTED() všetkých stĺpcov v <parametroch orderBy> a <partitionBy>.
Os X (Voliteľné) Os v tvare vizuálu. K dispozícii iba vo výpočtoch vizuálu a nahrádza <vzťah>.
orderBy (Voliteľné) Klauzula ORDERBY() obsahujúca stĺpce, ktoré definujú, ako je každá oblasť zoradená.
Ak sa vynechá:
– <vzťah> musí byť explicitne zadaný.
– Predvolene sa zoradí podľa každého stĺpca vo <vzťahu> , ktorý ešte nie je zadaný v parametri <partitionBy>.
Prázdne (Voliteľné) Enumerácia, ktorá definuje spôsob narábania s prázdnymi hodnotami pri zoraďovaní.
Podporované hodnoty sú:
  • DEFAULT (predvolená hodnota), kde sú správanie číselných hodnôt prázdne hodnoty zoradené medzi nulami a zápornou hodnotou. Správanie reťazcov je prázdne hodnoty zoradené pred všetkými reťazcami vrátane prázdnych reťazcov.
  • First, prázdne hodnoty sa vždy zoraďujú na začiatku bez ohľadu na vzostupné alebo zostupné poradie zoradenia.
  • Nakoniec sa prázdne hodnoty vždy zoradia na konci bez ohľadu na vzostupné alebo zostupné poradie zoradenia.

Všimnite si, že keď <sú prázdne> hodnoty parametra a prázdne hodnoty vo funkcii ORDERBY() v individuálnom výraze zadané, <prázdne hodnoty> v individuálnom výraze orderBy majú prednosť pre príslušný výraz orderBy a výrazy> orderBy bez <toho, aby boli zadané prázdne hodnoty, zachová <parameter prázdnych položiek> v nadradenej funkcii Window.
partitionBy (Voliteľné) Klauzula PARTITIONBY() obsahujúca stĺpce, ktoré definujú, ako <je vzťah> rozdelený.
Ak je tento parameter vynechaný, <vzťah> sa považuje za jednu oblasť.
matchBy (Voliteľné) Klauzula MATCHBY() obsahujúca stĺpce, ktoré definujú, ako sa majú zhodovať údaje a identifikovať aktuálny riadok.
vynulovanie (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ú: NONE, LOWESTPARENT, HIGHESTPARENT alebo celé číslo. Správanie závisí od celočíselného znamienka:
– Ak je tento parameter vynechaný, výpočet sa nevynuluje. Zodpovedá žiadnej z týchto možností.
– Ak je kladné, celé číslo identifikuje stĺpec začínajúci od najvyššej, nezávisle od zrna. Funkcia HIGHESTPARENT sa rovná hodnote 1.
– Ak je záporná, celé číslo identifikuje stĺpec začínajúci od najnižšej hodnoty vzhľadom na aktuálne vlákno. Funkcia LOWESTPARENT je ekvivalentom hodnoty -1.

Vrátená hodnota

Číslo riadka pre aktuálny kontext.

Poznámky

Každý <stĺpec orderBy>, <partitionBy> a <matchBy> 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:
    • RowNUMBER najprv určí všetky <stĺpce orderBy>, <partitionBy> a <matchBy> , ktoré nemajú zodpovedajúci vonkajší stĺpec.
    • Pre každú kombináciu existujúcich hodnôt pre tieto stĺpce v nadradenom kontexte ROWNUMBER sa vyhodnotí rowNUMBER a vráti sa riadok.
    • Konečný výstup funkcie ROWNUMBER predstavuje zjednotenie týchto riadkov.
  • Ak existuje viac ako jeden zodpovedajúci vonkajší stĺpec, vráti sa chyba.

Ak <je k dispozícii hodnota matchBy> , potom sa ROWNUMBER pokúsi použiť stĺpce v <matchBy> a <partitionBy> na idenfity aktuálneho riadka.
Ak stĺpce zadané v parametroch <orderBy> a <partitionBy> nemôžu jednoznačne identifikovať každý riadok vo <vzťahu>, potom:

  • Funkcia ROWNUMBER sa pokúsi nájsť najmenší počet ďalších stĺpcov potrebných na jedinečnú identifikáciu každého riadka.
  • Ak sa tieto stĺpce dajú nájsť, rownumber bude
    • Pokúste sa nájsť najmenší počet ďalších stĺpcov požadovaných na jedinečnú identifikáciu každého riadka.
    • Automaticky pripojiť tieto nové stĺpce k <klauzule orderBy> .
    • Zoraďte každú oblasť pomocou tejto novej množiny stĺpcov orderBy.
  • Ak sa takéto stĺpce nedajú nájsť a funkcia zistí väzbu v režime runtime, vráti sa chyba.

<Reset> možno použiť iba vo výpočtoch vizuálu a nemožno ho použiť v kombinácii s parametrom <orderBy> alebo <partitionBy>. Ak <je obnovenie> k dispozícii, os> možno zadať, <ale <vzťah> nemôže.

Príklad 1 – vypočítaný stĺpec

Nasledujúci dotaz jazyka 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áti tabuľku, ktorá jednoznačne vyraďuje každú geografickú oblasť podľa toho istého názvu anglickej krajinyKrajinaOblasti, a to podľa ich názvov StateProvinceName (NázovŠtátuProvincie) a City (Mesto).

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

Nasledujúce dotazy DAX pre výpočet vizuálu:

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

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

Vytvorte dva stĺpce, ktoré sa jednoznačne zoraďujú každý mesiac 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čet vizuálu DAX

INDEX
ORDERBY
PARTITIONBY
OKNO
RAD