ROWNUMBER
A következőkre vonatkozik:Számított oszlop
Számított tábla
Mérték
Vizualizációszámítási
Az aktuális környezet egyedi rangsorát adja vissza a megadott partíción belül, a megadott sorrend szerint rendezve. Ha nem található egyezés, akkor a sorszám üres.
Syntax
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Paraméterek
Időszak | Definíció |
---|---|
relation |
(Nem kötelező) Egy táblakifejezés, amelyből a kimeneti sor vissza lesz adva.
Ha meg van adva, a orderBy és a partitionBy összes oszlopának onnan kell származnia.
Ha nincs megadva: - orderBy explicit módon kell megadni.– Minden orderBy és partitionBy oszlopnak teljes mértékben minősítettnek kell lennie, és egyetlen táblából kell származnia.
– A orderBy és partitionBy összes oszlopának alapértelmezett értéke ALLSELECTED(). |
axis |
(Nem kötelező) A vizualizáció alakzatának tengelye. Csak vizuális számításokban érhető el, és lecseréli relation . |
orderBy |
(Nem kötelező) Az egyes partíciók rendezését meghatározó oszlopokat tartalmazó ORDERBY() záradék.
Ha nincs megadva: - relation explicit módon kell megadni.
– Alapértelmezés szerint a relation minden olyan oszlopa rendezi a sorrendet, amely még nincs megadva a partitionBy . |
blanks |
(Nem kötelező) Enumerálás, amely meghatározza, hogyan kezelhetők az üres értékek a relation vagy axis rendezésekor.
A támogatott értékek a következők:
Vegye figyelembe, hogy ha az egyes kifejezések ORDERBY() függvényének blanks paramétere és üres mezői is meg vannak adva, blanks az egyes orderBy-kifejezések prioritást élveznek a megfelelő orderBy kifejezésnél, és a blanks megadása nélküli OrderBy-kifejezések tiszteletben tartják a szülőfüggvény blanks paraméterét. |
partitionBy |
(Nem kötelező) A relation particionálását meghatározó oszlopokat tartalmazó PARTITIONBY() záradék. Ha nincs megadva, a relation egyetlen partícióként lesz kezelve. |
matchBy |
(Nem kötelező) Egy MATCHBY() záradék, amely azokat az oszlopokat tartalmazza, amelyek meghatározzák az adatok egyeztetését és az aktuális sor azonosítását. |
reset |
(Nem kötelező) Csak vizuális számításokban érhető el. Azt jelzi, hogy a számítás alaphelyzetbe áll-e, és a vizualizáció alakzatának oszlophierarchiájának melyik szintjén. Az elfogadott értékek a következők: az aktuális vizualizáció alakzatának egy oszlopára mutató mezőhivatkozás, NONE (alapértelmezett), LOWESTPARENT , HIGHESTPARENT vagy egész szám. A viselkedés a következő egész számjeltől függ: – Ha nulla vagy nincs megadva, a számítás nem állítható vissza. Egyenértékű NONE .
– Ha pozitív, az egész szám a legmagasabbtól kezdődő, a szemcséktől független oszlopot azonosítja. HIGHESTPARENT 1-nek felel meg.
– Ha negatív, az egész szám a legalacsonyabbtól kezdődő oszlopot azonosítja az aktuális szemcséhez viszonyítva. LOWESTPARENT -1-nek felel meg. |
Visszaadott érték
Az aktuális környezet sorszámszáma.
Megjegyzések
Minden orderBy
, partitionBy
és matchBy
oszlopnak megfelelő külső értékkel kell rendelkeznie ahhoz, hogy meghatározza az aktuális sort, amelyen működni kíván, az alábbi viselkedéssel:
- Ha pontosan egy megfelelő külső oszlop van, annak értékét használja a rendszer.
- Ha nincs megfelelő külső oszlop, akkor:
-
ROWNUMBER először az összes olyan
orderBy
,partitionBy
ésmatchBy
oszlopot határozza meg, amelyekhez nincs megfelelő külső oszlop. - Ezen oszlopok meglévő értékeinek minden kombinációjához ROWNUMBER szülőkörnyezetben a rendszer kiértékeli a ROWNUMBER, és visszaad egy sort.
- ROWNUMBERvégső kimenete ezeknek a soroknak az egyesítése.
-
ROWNUMBER először az összes olyan
- Ha egynél több megfelelő külső oszlop van, a függvény hibát ad vissza.
Ha matchBy
jelen van, akkor ROWNUMBER a matchBy
oszlopait fogja használni, és partitionBy
az aktuális sor idenfity-jének létrehozásához.
Ha a orderBy
és partitionBy
megadott oszlopok nem azonosítják egyedileg relation
minden sorát, akkor:
- ROWNUMBER megpróbálja megtalálni az összes sor egyedi azonosításához szükséges minimális számú további oszlopot.
- Ha ilyen oszlopok találhatók, ROWNUMBER
- Próbálja meg megkeresni az összes sor egyedi azonosításához szükséges minimális számú további oszlopot.
- Ezeket az új oszlopokat automatikusan hozzáfűzi
orderBy
záradékhoz. - Rendezze az egyes partíciókat ezzel az új orderBy oszlopkészlettel.
- Ha ezek az oszlopok nem találhatók, és a függvény futásidőben döntetlent észlel, a rendszer hibát ad vissza.
reset
csak vizualizációs számításokhoz használható, és nem használható orderBy
vagy partitionBy
együtt. Ha reset
van, axis
megadható, de relation
nem.
1. példa – számított oszlop
A következő DAX lekérdezés:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
Egy táblát ad vissza, amely az egyes földrajzi helyeket a StateProvinceName és a City szerint azonos EnglishCountryRegionName névvel rangsorolja.
2. példa – vizualizációszámítás
A következő vizualizációszámítás DAX lekérdezéseket:
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))
Hozzon létre két oszlopot, amelyek minden hónapban egyedileg rangsorolják az összes értékesítést, mind az év során, mind a teljes előzmény alapján.
Az alábbi képernyőképen a vizualizációs mátrix és az első vizualizáció számítási kifejezés látható: