Condividi tramite


ROWNUMBER

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, rownumber è vuoto.

Sintassi

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

Parametri

Termine Definizione
relation (Facoltativo) Espressione di tabella da cui viene restituita la riga di output. Se utilizzato nei calcoli visivi, questo parametro accetta un asse nella forma visiva.
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.
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 riga 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:
    • ROWNUMBER determinerà innanzitutto tutte le colonne orderBy, partitionBye matchBy senza colonna esterna corrispondente.
    • Per ogni combinazione di valori esistenti per queste colonne in ROWNUMBER contesto padre, ROWNUMBER viene valutata e viene restituita una riga.
    • ROWNUMBER'output finale è un'unione di queste righe.
  • Se sono presenti più colonne esterne corrispondenti, viene restituito un errore.

Se matchBy è presente, ROWNUMBER 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, allora:

  • ROWNUMBER tenterà di trovare il minor numero di colonne aggiuntive necessarie per identificare in modo univoco ogni riga.
  • Se è possibile trovare tali colonne, ROWNUMBER
    • 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.

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.

Se il valore di reset è assoluto (ad esempio, un numero intero HIGHESTPARENT positivo o un riferimento a un campo) e il calcolo viene valutato al livello di destinazione o superiore al livello di destinazione nella gerarchia, il calcolo viene reimpostato per ogni singolo elemento. Ovvero, la funzione viene valutata all'interno di una partizione contenente solo l'elemento specifico.

Esempio 1 : colonna calcolata

La query di 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 in modo univoco ogni area geografica con lo stesso EnglishCountryRegionName, in base al relativo StateProvinceName e City.

Esempio 2 - Calcolo visivo

Il calcolo visivo seguente DAX query:

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:

DAX calcolo visivo

INDEX ORDERBY PARTITIONBY WINDOW RANK