Zdieľať cez


ROWNUMBER

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuálového výpočtu

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ť, číslo riadka je prázdne.

Syntax

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

Parametre

Obdobie Definícia
relation (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 orderBy a partitionBy.
Ak tento argument vynecháte:
- 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 použije ALLSELECTED() všetkých stĺpcov v orderBy a partitionBy.
axis (Voliteľné) Os v tvare vizuálu. K dispozícii iba vo výpočtoch vizuálu a nahrádza relation.
orderBy (Voliteľné) Klauzula ORDERBY() obsahujúca stĺpce, ktoré definujú, ako sa má každá oblasť zoradiť.
Ak tento argument vynecháte:
- relation musí byť explicitne zadaný.
– predvolene sa zoradí podľa každého stĺpca v relation, ktorý ešte nie je zadaný v partitionBy.
blanks (Voliteľné) Enumerácia, ktorá definuje spôsob narábania s prázdnymi hodnotami pri zoraďovaní relation alebo axis.
Podporované hodnoty sú:
  • DEFAULT (predvolená hodnota), kde sú správanie číselných hodnôt prázdne hodnoty zoradené medzi nulami a záporné hodnoty. 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.
  • LAST, prázdne hodnoty sa vždy zoraďujú na konci bez ohľadu na vzostupné alebo zostupné poradie zoradenia.

Všimnite si, že keď sú v ORDERBY() funkcie pri jednotlivých výrazoch zadané hodnoty blanksblanks na výraze orderBy má prednosť pre príslušný výraz orderBy a výrazy orderBy bez blanks zadania zachová parameter blanks v nadradenej funkcii.
partitionBy (Voliteľné) Klauzula PARTITIONBY() obsahujúca stĺpce, ktoré definujú spôsob rozdelenia relation. Ak sa vynechá, relation sa považuje za jednu oblasť.
matchBy (Voliteľné) Klauzula MATCHBY() obsahujúca stĺpce, ktoré definujú, ako sa majú zhodovať s údajmi a identifikovať aktuálny riadok.
reset (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ú: odkaz na pole na stĺpec v aktuálnom tvare vizuálu, NONE (predvolené), LOWESTPARENT, HIGHESTPARENTalebo celé číslo. Správanie závisí od celočíselného znamienka:
– Ak je hodnota nula alebo je vynechaná, výpočet sa nevynuluje. Zodpovedá NONE.
– ak je kladné, celé číslo identifikuje stĺpec začínajúci od najvyššej, nezávisle od zrna. HIGHESTPARENT zodpovedá 1.
– ak je záporné, celé číslo identifikuje stĺpec začínajúci od najnižšej hodnoty vo vzťahu k aktuálnemu zrnu. LOWESTPARENT je ekvivalentom čísla -1.

Vrátená hodnota

Číslo riadka pre aktuálny kontext.

Poznámky

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

Ak existuje matchBy, ROWNUMBER sa pokúsi použiť stĺpce v matchBy a partitionBy na idenfity aktuálneho riadka. Ak stĺpce zadané v rámci orderBy a partitionBy nemôžu jednoznačne identifikovať každý riadok v relation, potom:

  • 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 takéto stĺpce nájdu, ROWNUMBER
    • 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 vizuálnych výpočtoch a nemožno ho použiť v kombinácii s orderBy alebo partitionBy. Ak je prítomná reset, možno zadať axis ale relation nedá.

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

Nasledujúci DAX dotaz:

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úci výpočet vizuálu DAX dotazy:

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

INDEX ORDERBY PARTITIONBY WINDOW RANK