ROWNUMBER
Si applica a: Calcolo visivo misura tabella calcolata colonna calcolata
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
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parametri
Termine | Definizione |
---|---|
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:
|
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 riga 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:
- ROWNUMBER 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 ROWNUMBER, ROWNUMBER viene valutata e viene restituita una riga.
- L'output finale di ROWNUMBER è un'unione di queste righe.
- Se sono presenti più colonne esterne corrispondenti, viene restituito un errore.
Se è presente <matchBy>, ROWNUMBER 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>, allora:
- ROWNUMBER tenterà di trovare il minor numero di colonne aggiuntive necessarie per identificare in modo univoco ogni riga.
- Se tali colonne sono disponibili, ROWNUMBER eseguirà le seguenti operazioni
- Provare a trovare il minor numero di colonne aggiuntive necessarie per identificare in modo univoco ogni riga.
- Accodare automaticamente queste nuove colonne alla clausola <orderBy>.
- Ordinare ogni partizione usando questo nuovo set di colonne orderBy.
- Se non è possibile trovare tali colonne e la funzione rileva un legame in fase di esecuzione, viene restituito un errore.
<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',
"UniqueRank",
ROWNUMBER(
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
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.
Esempio 2 - Calcolo visivo
Le query DAX di calcolo visivo seguenti:
SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))
Creare due colonne che classificano in modo univoco 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: