Del via


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:
  • DEFAULT (standardverdien), der virkemåten for numeriske verdier er tomme verdier, er sortert mellom null og negative verdier. Virkemåten for strenger er tomme verdier ordnes før alle strenger, inkludert tomme strenger.
  • FIRSTer blanks alltid sortert i begynnelsen, uavhengig av stigende eller synkende sorteringsrekkefølge.
  • LASTer tomme celler alltid ordnet på slutten, uavhengig av stigende eller synkende sorteringsrekkefølge.

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, HIGHESTPARENTeller 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, partitionByog 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, partitionByog matchBy 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.
  • 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:

DAX beregning av visualobjekter

INDEX ORDERBY PARTITIONBY WINDOW RANK