Condividi tramite


RANK

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

Restituisce la classificazione per il contesto corrente all'interno della partizione specificata, ordinata in base all'ordine specificato. If non è possibile trovare una corrispondenza, rank viene blank.

Sintassi

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

Parametri

Termine Definizione
ties (Facoltativo) Definisce come gestire la classificazione quando due or più righe sono associate.
If specificato, il value supportato è DENSE or SKIP.
If omesso:
- Impostazione predefinita ignora
relation (Facoltativo) Espressione di tabella da cui viene restituita la riga di output.
If specificato, all colonne in orderByandpartitionBy devono provenire da essa.
If omesso:
- orderBy deve essere specificato in modo esplicito.
: le colonne AllorderByandpartitionBy devono essere complete and provengono da una singola tabella.
: per impostazione predefinita viene ALLSELECTED() delle colonne di all in orderByandpartitionBy.
axis (Facoltativo) Asse nella forma visiva. Disponibile solo nei calcoli visivi, and sostituisce relation.
orderBy (Facoltativo) Clausola ORDERBY() contenente le colonne che define la modalità di ordinamento di ogni partizione.
If omesso:
- relation deve essere specificato in modo esplicito.
: per impostazione predefinita l'ordinamento in base a ogni colonna in relationnot già specificata in partitionBy.
blanks (Facoltativo) Enumerazione che definisce come gestire blankvalues durante l'ordinamento.
Le values supportate sono:
  • KEEP (il valuepredefinito ), dove il comportamento per la values numerica è blankvalues viene ordinato tra zero andvaluesnegativo. Il comportamento delle stringhe è blankvalues vengono ordinati prima di all stringhe, incluse le stringhe vuote.
  • FIRST, gli spazi vuoti vengono sempre ordinati all'inizio, indipendentemente dall'ordinamento crescente or ordinamento decrescente.
  • LAST, gli spazi vuoti vengono sempre ordinati alla fine, indipendentemente dall'ordinamento crescente or ordinamento decrescente.

Nota, quando vengono specificati entrambi blanks parametro and spazi vuoti nella funzione ORDERBY() su singole espressioni, blanks su singole espressioni di orderBy assume la priorità per l'espressione orderBy pertinente, andorderBy espressioni senza blanks specificato rispetta blanks parametro nella funzione Window padre.
partitionBy (Facoltativo) Clausola PARTITIONBY() contenente le colonne che define la modalità di partizionamento delle relation.
If omesso, relation viene considerato come una singola partizione.
matchBy (Facoltativo) Clausola MATCHBY() contenente le colonne che define come trovare le corrispondenze con i dati and identificare la riga corrente.
reset (Facoltativo) Disponibile solo nei calcoli visivi. Indica if il calcolo viene reimpostato, and a quale livello della gerarchia di colonne della forma visiva. I values accettati sono: un riferimento di campo a una colonna nella forma visiva corrente, NONE (impostazione predefinita), LOWESTPARENT, HIGHESTPARENT, or un numero intero. Il comportamento dipende dall'intero sign:
- If zero or omesso, il calcolo viene reimpostato not. Equivalente a NONE.
: If positivo, l'intero identifica la colonna a partire dal più alto, indipendentemente dal livello di granularità. HIGHESTPARENT equivale a 1.
: If negativo, l'intero identifica la colonna a partire dal più basso, rispetto alla granularità corrente. LOWESTPARENT equivale a -1.

Restituisce value

Numero rank per il contesto corrente.

Osservazioni

  • Ogni orderBy, partitionBy, andmatchBy colonna deve avere un value esterno corrispondente per define la riga corrente su cui operare, con il comportamento seguente:

    • If esiste esattamente una colonna esterna corrispondente, viene usata la relativa value.
    • If non esiste alcuna colonna esterna corrispondente, quindi:
      • RANK determinerà firstallorderBy, partitionBy, andmatchBy colonne senza colonna esterna corrispondente.
      • Per ogni combinazione di values esistenti per queste colonne nel contesto padre RANK, RANK viene valutata and viene restituita una riga.
      • RANK'output finale è un numero rank.
  • If matchBy è presente, RANK tenterà di usare colonne in matchByandpartitionBy per idenfity della riga corrente.

  • If le colonne specificate all'interno di orderByandpartitionBy non possono identificare in modo univoco ogni riga in relation, quindi due or più righe possono avere la stessa classificazione and la classificazione verrà determinata dal parametro ties.

  • RANK restituisce un blankvalue per le righe totali. È consigliabile testare accuratamente l'espressione.

  • RANK confronta not con RANKX rispetto a SUM confronta con SUMX.

  • reset può essere usato solo nei calcoli visivi, and non può essere usato in combinazione con orderByorpartitionBy. If reset è presente, è possibile specificare axis, ma non relation.

Esempio 1 : colonna calcolata

La query di DAX seguente:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "Rank",
    RANK(
    	DENSE,
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
        LAST,
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Restituisce una tabella che classifica ogni area geografica con la stessa proprietà EnglishCountryRegionName, in base alla proprietà StateProvinceName and City. Blank orderBy values colonne vengono ordinate alla fine.

Esempio 2 - Calcolo visivo

Il calcolo visivo seguente DAX query:

SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

Creare due colonne che rank ogni month in base alle vendite totali, entrambe all'interno di ogni year, and l'intera cronologia.

Lo screenshot seguente mostra la matrice visiva and'espressione di calcolo visivo first:

DAX calcolo visivo

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER