RANK

Si applica a:Calcolo visivo misuratabella calcolata colonnacalcolata

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
(Facoltativo) Definisce come gestire la classificazione quando due o più righe sono associate.
Se specificato, il valore supportato è DENSE o SKIP.
Se omesso:
- Da Impostazione predefinita a IGNORA
relazione (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.
- L'impostazione predefinita è ALLSELECTED() di tutte le colonne in <orderBy> e <partitionBy>.
axis (Facoltativo) Asse nella forma visiva. Disponibile solo nei calcoli visivi e sostituisce la <relazione>.
orderBy (Facoltativo) Clausola ORDERBY() contenente le colonne che definiscono la modalità di ordinamento di ogni partizione.
Se omesso:
- la <relazione> deve essere specificata in modo esplicito.
- Per impostazione predefinita, l'ordinamento viene eseguito in base a ogni colonna in <relazione> non già specificata in <partitionBy>.
valori blank (Facoltativo) Enumerazione che definisce come gestire i valori (blank) durante l'ordinamento.
I valori supportati sono:
  • K edizione Enterprise P (valore predefinito), dove il comportamento per i valori numerici è vuoto, vengono ordinati tra zero e valori negativi. Il comportamento per le stringhe è costituito dall’ordinamento dei valori blank prima di tutte le stringhe, incluse le stringhe vuote.
  • PRIMI, i valori blank vengono sempre ordinati all'inizio, indipendentemente dall'ordinamento crescente o decrescente.
  • ULTIMI, i valori blank vengono sempre ordinati alla fine, indipendentemente dall'ordinamento crescente o decrescente.

Si noti che quando vengono specificati parametri <blank> e blank nella funzione ORDERBY() in singole espressioni, i <blank> per ogni espressione orderBy hanno la priorità per l'espressione orderBy pertinente e le espressioni orderBy senza <blank> specificate rispettano il parametro <blank> nella funzione Window principale.
partitionBy (Facoltativo) Clausola PARTITIONBY() contenente le colonne che definiscono la modalità <di partizionamento della relazione>.
Se omesso, <la relazione> viene considerata come una singola partizione.
matchBy (Facoltativo) Clausola MATCHBY() contenente le colonne che definiscono come trovare le corrispondenze con i dati e identificare la riga corrente.
reset (ripristina) (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: NONE, LOWESTPARENT, HIGHESTPARENT o 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 dalla granularità. HIGHESTPARENT equivale a 1.
- Se negativo, l'intero identifica la colonna a partire dal più basso, rispetto alla granularità corrente. LOWESTPARENT equivale a -1.

Valore restituito

Numero di classificazione per il contesto corrente.

Osservazioni:

  • Ogni colonna <orderBy>, <partitionBy>e <matchBy> 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>, <partitionBy>e <matchBy> che non dispongono di colonne esterne corrispondenti.
      • Per ogni combinazione di valori esistenti per queste colonne nel contesto padre RANK, RANK viene valutata e viene restituita una riga.
      • L'output finale di RANK è un numero di classificazione.
  • Se <matchBy> è presente, RANK tenterà di usare le colonne in <matchBy e< partitionBy >> per identificare la riga corrente.

  • Se le colonne specificate all'interno <di orderBy> e <partitionBy> non possono identificare in modo univoco ogni riga in <relazione>, è possibile che due o più righe abbiano la stessa classificazione e che la classificazione venga determinata dal parametro ties.

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

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

  • <la reimpostazione> può essere usata solo nei calcoli visivi e non può essere usata in combinazione con <orderBy> o <partitionBy>. Se <la reimpostazione> è presente, <è possibile specificare l'asse> , ma <la relazione> non può.

Esempio 1 : colonna calcolata

La query 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> blank vengono ordinati alla fine.

Esempio 2 - Calcolo visivo

Le query DAX di calcolo visivo seguenti:

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:

Calcolo visivo DAX

INDEX
ORDERBY
PARTITIONBY
WINDOW
ROWNUMBER