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 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:
  • 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.

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