RANK
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:
|
partitionBy |
(Facoltativo) Clausola relation viene considerato come una singola partizione. |
matchBy |
(Facoltativo) Clausola |
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 , 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 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
,partitionBy
ematchBy
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
,partitionBy
ematchBy
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.
-
RANK determinerà innanzitutto tutte le colonne
Se
matchBy
è presente, RANK tenterà di usare colonne inmatchBy
epartitionBy
per idenfity della riga corrente.Se le colonne specificate all'interno di
orderBy
epartitionBy
non possono identificare in modo univoco ogni riga inrelation
, 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 conorderBy
opartitionBy
. Sereset
è presente, è possibile specificareaxis
ma nonrelation
.
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: