Share via


ROWNUMBER

Se aplica a:Columna calculadaTabla calculadaMediciónCálculo visual

Devuelve la clasificación única del contexto actual dentro de la partición especificada ordenada según lo especificado. Si no se encuentra una coincidencia, rownumber está en blanco.

Sintaxis

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

Parámetros

Término Definición
relation (Opcional) Expresión de tabla desde la que se devuelve la fila de salida.
Si se especifica, todas las columnas de <orderBy> y <partitionBy> deben proceder de ella.
Si se omite:
- <orderBy> debe especificarse explícitamente.
- Todas las columnas de <orderBy> y <partitionBy> deben tener el nombre completo y proceder de una sola tabla.
- Toma el valor predeterminado ALLSELECTED() de todas las columnas de <orderBy> y <partitionBy>.
ejes (Opcional) Un eje en la forma visual. Solo está disponible en cálculos visuales y reemplaza la <relación>.
orderBy (Opcional) Cláusula ORDERBY() que contiene las columnas que definen cómo se ordena cada partición.
Si se omite:
- <relation> debe especificarse explícitamente.
- De forma predeterminada, ordena por cada columna de <relation> que aún no se haya especificado en <partitionBy>.
espacios en blanco (Opcional) Enumeración que define cómo controlar los valores en blanco en la ordenación.
Los valores admitidos son:
  • DEFAULT (el valor predeterminado), donde el comportamiento de los valores numéricos es que los valores en blanco se ordenan entre cero y valores negativos. El comportamiento de las cadenas es que los valores en blanco se ordenan delante de todas las cadenas, incluidas las cadenas vacías.
  • FIRST, los espacios en blanco siempre se ordenan al principio, independientemente del criterio de ordenación ascendente o descendente.
  • LAST, los espacios en blanco siempre se ordenan al final, independientemente del criterio de ordenación ascendente o descendente.

Tenga en cuenta que cuando se especifican parámetros <blanks> y espacios en blanco en la función ORDERBY() en una expresión individual, los <espacios en blanco> de la expresión orderBy individuales tienen prioridad para la expresión orderBy pertinente y las expresiones orderBy sin que se especifiquen <espacios en blanco> respetarán el parámetro <blanks en la función primaria Window.
partitionBy (Opcional) Cláusula PARTITIONBY() que contiene las columnas que definen cómo se particiona <relation>.
Si se omite, <relation> se trata como una sola partición.
matchBy (Opcional) Una cláusula MATCHBY() que contiene las columnas que definen cómo hacer coincidir los datos e identificar la fila actual.
reset (Opcional) Solo está disponible en cálculos visuales. Indique si el cálculo se restablece y en qué nivel de la jerarquía de columnas de la forma visual. Los valores aceptados son: NONE, LOWESTPARENT, HIGHESTPARENT o un entero. El comportamiento depende del signo entero:
: si se omite cero, el cálculo no se restablece. Equivalente a NONE.
: si es positivo, el entero identifica la columna a partir de la más alta, independiente del intervalo de agregación. HIGHESTPARENT es equivalente a 1.
: si es negativo, el entero identifica la columna a partir del más bajo, en relación con el intervalo de agregación actual. LOWESTPARENT es equivalente a -1.

Valor devuelto

Número de rownumber del contexto actual.

Observaciones

Cada columna de <orderBy>, <partitionBy> y <matchBy> debe tener un valor externo correspondiente para ayudar a definir la fila actual en la que operar, con el siguiente comportamiento:

  • Si hay exactamente una columna externa correspondiente, se utiliza su valor.
  • Si no hay ninguna columna externa correspondiente:
    • ROWNUMBER determina primero todas las columnas de <orderBy>, <partitionBy> y <matchBy> que no tienen ninguna columna externa correspondiente.
    • Para cada combinación de valores de estas columnas en el contexto primario de ROWNUMBER, se evalúa ROWNUMBER y se devuelve una fila.
    • La salida final de ROWNUMBER es una unión de estas filas.
  • Si hay más de una columna externa correspondiente, se devuelve un error.

Si <matchBy> está presente, ROWNUMBER intentará usar columnas en <matchBy> y <partitionBy> para identificar la fila actual.
Si las columnas especificadas en <orderBy> y <partitionBy> no pueden identificar de forma única todas las filas de <relation>:

  • ROWNUMBER intenta buscar el menor número de columnas adicionales necesarias para identificar de forma única cada fila.
  • Si se encuentran estas columnas, ROWNUMBER
    • intentará buscar el menor número de columnas adicionales necesarias para identificar de forma única cada fila.
    • Anexe automáticamente estas nuevas columnas a la cláusula <orderBy>.
    • Ordene cada partición con este nuevo conjunto de columnas orderBy.
  • Si no se encuentran estas columnas y la función detecta un empate en tiempo de ejecución, se devuelve un error.

<reset> solo se puede usar en cálculos visuales y no se puede usar en combinación con <orderBy> o <partitionBy>. Si <reset> está presente, se puede especificar el <eje>, pero no se puede especificar la <relación>.

Ejemplo 1: columna calculada

La consulta DAX siguiente:

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Devuelve una tabla que clasifica exclusivamente cada geografía con el mismo englishCountryRegionName, por stateProvinceName y City.

Ejemplo 2: cálculo visual

Las siguientes consultas DAX de cálculo visual:

SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

Cree dos columnas que clasifiquen de forma única cada mes por el total de ventas, tanto dentro de cada año como por todo el historial.

En la siguiente captura de pantalla se muestra la matriz visual y la primera expresión de cálculo visual:

Cálculo del objeto visual DAX

INDEX
ORDERBY
PARTITIONBY
WINDOW
RANK