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 orderBy andpartitionBy devono provenire da essa.
If omesso: - orderBy deve essere specificato in modo esplicito.: le colonne All orderBy andpartitionBy devono essere complete and provengono da una singola tabella.
: per impostazione predefinita viene ALLSELECTED() delle colonne di all in orderBy andpartitionBy . |
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 relation not già specificata in partitionBy . |
blanks |
(Facoltativo) Enumerazione che definisce come gestire blankvalues durante l'ordinamento.
Le values supportate sono:
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à firstall
orderBy
,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.
-
RANK determinerà firstall
If
matchBy
è presente, RANK tenterà di usare colonne inmatchBy
andpartitionBy
per idenfity della riga corrente.If le colonne specificate all'interno di
orderBy
andpartitionBy
non possono identificare in modo univoco ogni riga inrelation
, 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 conorderBy
orpartitionBy
. Ifreset
è 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 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: