Condividi tramite


RANK

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

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

Sintassi

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

Parametri

Termine Definizione
ties (Facoltativo) Definisce come gestire la classificazione quando due o più righe sono associate.
Se specificato, il valore supportato è DENSE o SKIP.
Se omesso:
- Impostazione predefinita ignora
relation (Facoltativo) Espressione di tabella da cui viene restituita la riga di output.
Se specificato, tutte le colonne in orderBy e partitionBy devono provenire da essa.
Se omesso:
- orderBy deve essere specificato in modo esplicito.
: tutte le colonne orderBy e partitionBy devono essere complete e provenire da una singola tabella.
: per impostazione predefinita viene ALLSELECTED() di tutte le colonne in orderBy e partitionBy.
axis (Facoltativo) Asse nella forma visiva. Disponibile solo nei calcoli visivi e sostituisce relation.
orderBy (Facoltativo) Clausola ORDERBY() contenente le colonne che definiscono la modalità di ordinamento di ogni partizione.
Se omesso:
- relation deve essere specificato in modo esplicito.
: per impostazione predefinita l'ordinamento in base a ogni colonna in relation non già specificata in partitionBy.
blanks (Facoltativo) Enumerazione che definisce come gestire i valori vuoti durante l'ordinamento del relation o axis.
I valori supportati sono:
  • DEFAULT (valore predefinito), dove il comportamento per i valori numerici è vuoto viene ordinato tra zero e valori negativi. Il comportamento per le stringhe è costituito da valori vuoti prima di tutte le stringhe, incluse le stringhe vuote.
  • FIRST, gli spazi vuoti vengono sempre ordinati all'inizio, indipendentemente dall'ordinamento crescente o decrescente.
  • LAST, gli spazi vuoti vengono sempre ordinati alla fine, indipendentemente dall'ordinamento crescente o decrescente.
Nota, quando il parametro e gli spazi vuoti nella funzione () su singole espressioni vengono specificati entrambi, su un'espressione orderBy singola assume la priorità per l'espressione orderBy pertinente e le espressioni orderBy senza specificato rispediranno il parametro nella funzione padre.
partitionBy (Facoltativo) Clausola () contenente le colonne che definiscono la modalità di partizionamento . Se omesso, relation viene considerato come una singola partizione.
matchBy (Facoltativo) Clausola () contenente le colonne che definiscono come trovare le corrispondenze con i dati e identificare la riga corrente.
reset (Facoltativo) Disponibile solo nei calcoli visivi. Indica se il calcolo viene reimpostato e a quale livello della gerarchia di colonne della forma visiva. I valori accettati sono: un riferimento di campo a una colonna nella forma visiva corrente, NONE (impostazione predefinita), LOWESTPARENT, HIGHESTPARENTo un numero intero. Il comportamento dipende dal segno intero:
- Se zero o omesso, il calcolo non viene reimpostato. Equivalente a NONE.
: se positivo, l'intero identifica la colonna a partire dal più alto, indipendentemente dal livello di granularità. HIGHESTPARENT equivale a 1.
: se negativo, l'intero identifica la colonna a partire dal livello più basso, rispetto alla granularità corrente. LOWESTPARENT equivale a -1.

Valore restituito

Numero di classificazione per il contesto corrente.

Osservazioni

  • Ogni orderBy, partitionBye matchBy colonna deve avere un valore esterno corrispondente per definire la riga corrente su cui operare, con il comportamento seguente:

    • Se è presente esattamente una colonna esterna corrispondente, viene usato il relativo valore.
    • Se non è presente alcuna colonna esterna corrispondente, eseguire le operazioni seguenti:
      • RANK determinerà innanzitutto tutte le colonne orderBy, partitionBye matchBy senza colonna esterna corrispondente.
      • Per ogni combinazione di valori esistenti per queste colonne in RANK contesto padre, RANK viene valutata e viene restituita una riga.
      • RANK'output finale è un numero di classificazione.
  • Se matchBy è presente, RANK tenterà di usare colonne in matchBy e partitionBy per idenfity della riga corrente.

  • Se le colonne specificate all'interno di orderBy e partitionBy non possono identificare in modo univoco ogni riga in relation, due o più righe possono avere la stessa classificazione e la classificazione verrà determinata dal parametro ties.

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

  • RANK non viene confrontato con RANKX come SUM confrontato con SUMX.

  • reset possono essere usati solo nei calcoli visivi e non possono essere usati in combinazione con orderBy o partitionBy. Se 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 a StateProvinceName e City. I valori di colonna orderBy vuoti vengono ordinati 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 classificano ogni mese in base alle vendite totali, sia all'interno di ogni anno che all'intera cronologia.

Lo screenshot seguente mostra la matrice visiva e la prima espressione di calcolo visivo:

DAX calcolo visivo

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER