ROWNUMBER
Vzťahuje sa na:vypočítaný stĺpec
vypočítanej tabuľky
vizuá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ú:
Všimnite si, že keď sú v ORDERBY() funkcie pri jednotlivých výrazoch zadané hodnoty blanks blanks 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 , HIGHESTPARENT alebo 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
, 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
orderBy
,partitionBy
amatchBy
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.
-
ROWNUMBER najprv určí všetky
- 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