Compartir a través de


ROWNUMBER

Se aplica a:columna Calculadatabla calculadaMedidacá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 se debe especificar explícitamente.
: todas las columnas orderBy y partitionBy deben estar completas y proceder de una sola tabla.
: el valor predeterminado es ALLSELECTED() de todas las columnas de orderBy y partitionBy.
axis (Opcional) Un eje en la forma visual. Solo está disponible en cálculos visuales y reemplaza relation.
orderBy (Opcional) Una cláusula ORDERBY() que contiene las columnas que definen cómo se ordena cada partición.
Si se omite:
- relation se debe especificar explícitamente.
: el valor predeterminado es ordenar por cada columna de relation que aún no se ha especificado en partitionBy.
blanks (Opcional) Enumeración que define cómo controlar valores en blanco al ordenar el relation o axis.
Los valores admitidos son:
  • DEFAULT (el valor predeterminado), donde el comportamiento de los valores numéricos es valores en blanco se ordenan entre cero y valores negativos. El comportamiento de las cadenas es valores en blanco se ordenan antes de todas las cadenas, incluidas las cadenas vacías.
  • FIRST, los espacios en blanco siempre se ordenan al principio, independientemente del orden ascendente o descendente.
  • LAST, los espacios en blanco siempre se ordenan al final, independientemente del orden ascendente o descendente.

Nota, cuando se especifica el parámetro blanks y los espacios en blanco de la función ORDERBY() en expresiones individuales, blanks en la expresión orderBy individual tienen prioridad para la expresión orderBy pertinente y las expresiones orderBy sin blanks especificar respetarán el parámetro blanks en la función primaria.
partitionBy (Opcional) Cláusula () que contiene las columnas que definen cómo se particiona . 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. Indica si el cálculo se restablece y en qué nivel de la jerarquía de columnas de la forma visual. Los valores aceptados son: una referencia de campo a una columna de la forma visual actual, NONE (valor predeterminado), LOWESTPARENT, HIGHESTPARENTo 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 del valor más alto e independiente del grano. HIGHESTPARENT equivale a 1.
: si es negativo, el entero identifica la columna a partir del más bajo, en relación con el grano actual. LOWESTPARENT equivale a -1.

Valor devuelto

Número de fila del contexto actual.

Observaciones

Cada orderBy, partitionByy matchBy columna debe tener un valor externo correspondiente para ayudar a definir la fila actual en la que se va a operar, con el siguiente comportamiento:

  • Si hay exactamente una columna externa correspondiente, se usa su valor.
  • Si no hay ninguna columna externa correspondiente, haga lo siguiente:
    • ROWNUMBER determinará primero todas las columnas orderBy, partitionByy matchBy que no tienen ninguna columna externa correspondiente.
    • Para cada combinación de valores existentes para estas columnas en ROWNUMBER contexto primario, se evalúa ROWNUMBER y se devuelve una fila.
    • ROWNUMBERla salida final 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 idenfity la fila actual. Si las columnas especificadas en orderBy y partitionBy no pueden identificar de forma única todas las filas de relation, a continuación:

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

reset solo se pueden usar en cálculos visuales y no se pueden usar en combinación con orderBy o partitionBy. Si reset está presente, se puede especificar axis pero no se puede relation.

Ejemplo 1: columna calculada

La siguiente consulta DAX:

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 de forma única cada geografía con el mismo englishCountryRegionName, por su StateProvinceName y City.

Ejemplo 2: cálculo visual

El siguiente cálculo visual DAX consultas:

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 captura de pantalla siguiente se muestra la matriz visual y la primera expresión de cálculo visual:

DAX de cálculo visual

INDEX ORDERBY PARTITIONBY WINDOW RANK