ROWNUMBER
gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning
Returnerer den unike rangeringen for gjeldende kontekst i den angitte partisjonen, sortert etter den angitte rekkefølgen. Hvis du ikke finner et treff, er radnummeret tomt.
Syntaks
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametere
Term | Definisjon |
---|---|
relation |
(Valgfritt) Et tabelluttrykk som utdataraden returneres fra.
Hvis angitt, må alle kolonnene i orderBy og partitionBy komme fra den.
Hvis utelatt: - orderBy må angis eksplisitt.– Alle orderBy og partitionBy kolonnene må være fullstendig kvalifiserte og komme fra én enkelt tabell.
– standarder for ALLSELECTED() for alle kolonner i orderBy og partitionBy . |
axis |
(Valgfritt) En akse i den visuelle figuren. Bare tilgjengelig i visuelle beregninger, og erstatter relation . |
orderBy |
(Valgfritt) En ORDERBY() setning som inneholder kolonnene som definerer hvordan hver partisjon sorteres.
Hvis utelatt: - relation må angis eksplisitt.
– Standarder for bestilling av hver kolonne i relation som ikke allerede er angitt i partitionBy . |
blanks |
(Valgfritt) En opplisting som definerer hvordan du håndterer tomme verdier når du sorterer relation eller axis .
De støttede verdiene er:
Obs! Når blanks parameteren og tomrommene i ORDERBY()-funksjonen på individuelle uttrykk er angitt, prioriteres blanks enkelt orderBy-uttrykk for det relevante orderBy-uttrykket, og orderBy-uttrykk uten at blanks angis, respekterer blanks parameteren for den overordnede funksjonen. |
partitionBy |
(Valgfritt) En PARTITIONBY() setningsdel som inneholder kolonnene som definerer hvordan relation partisjoneres. Hvis utelatt, behandles relation som én enkelt partisjon. |
matchBy |
(Valgfritt) En MATCHBY() setningsdel som inneholder kolonnene som definerer hvordan dataene skal samsvare og identifisere gjeldende rad. |
reset |
(Valgfritt) Bare tilgjengelig i visuelle beregninger. Angir om beregningen tilbakestilles, og på hvilket nivå i kolonnehierarkiet for visualobjektfiguren. Godtatte verdier er: en feltreferanse til en kolonne i gjeldende visuelle figur, NONE (standard), LOWESTPARENT , HIGHESTPARENT eller et heltall. Virkemåten avhenger av heltallstegnet: – Hvis null eller utelatt, tilbakestilles ikke beregningen. Tilsvarer NONE .
– Hvis det er positivt, identifiserer heltallet kolonnen fra den høyeste, uavhengige av korn. HIGHESTPARENT tilsvarer 1.
– Hvis negativt, identifiserer heltallet kolonnen fra det laveste, i forhold til gjeldende korn. LOWESTPARENT tilsvarer -1. |
Returverdi
Radnummeret for gjeldende kontekst.
Merknader
Hver orderBy
, partitionBy
og matchBy
kolonne må ha en tilsvarende ytre verdi for å definere gjeldende rad som skal brukes, med følgende virkemåte:
- Hvis det er nøyaktig én tilsvarende ytre kolonne, brukes verdien.
- Hvis det ikke finnes noen tilsvarende ytre kolonne, gjør du følgende:
-
ROWNUMBER bestemmer først alle kolonnene
orderBy
,partitionBy
ogmatchBy
som ikke har noen tilsvarende ytre kolonne. - For hver kombinasjon av eksisterende verdier for disse kolonnene i ROWNUMBER overordnede kontekst, evalueres ROWNUMBER og en rad returneres.
- ROWNUMBER's endelige utdata er en union av disse radene.
-
ROWNUMBER bestemmer først alle kolonnene
- Hvis det er mer enn én tilsvarende ytre kolonne, returneres en feil.
Hvis matchBy
finnes, prøver ROWNUMBER å bruke kolonner i matchBy
og partitionBy
til å innrykke gjeldende rad.
Hvis kolonnene som er angitt i orderBy
og partitionBy
ikke unikt kan identifisere hver rad i relation
, gjør du følgende:
- ROWNUMBER vil prøve å finne det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
- Hvis du finner slike kolonner, ROWNUMBER
- Prøv å finne det minste antallet ekstra kolonner som kreves for å identifisere hver rad unikt.
- Tilføy disse nye kolonnene automatisk til
orderBy
setningsdelen. - Sorter hver partisjon ved hjelp av dette nye settet med orderBy-kolonner.
- Hvis slike kolonner ikke blir funnet og funksjonen oppdager et slips ved kjøring, returneres en feil.
reset
kan bare brukes i visuelle beregninger, og kan ikke brukes sammen med orderBy
eller partitionBy
. Hvis reset
finnes, kan axis
angis, men relation
kan ikke.
Eksempel 1 – beregnet kolonne
Følgende DAX spørring:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
Returnerer en tabell som unikt rangerer hver geografi med samme EnglishCountryRegionName, etter StateProvinceName og City.
Eksempel 2 – visuell beregning
Følgende visuelle beregning DAX spørringer:
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))
Opprett to kolonner som entydig rangerer hver måned etter det totale salget, både i hvert år og hele loggen.
Skjermbildet nedenfor viser den visuelle matrisen og det første visuelle beregningsuttrykket: