Leer en inglés

Compartir a través de


RANK

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Devuelve la clasificación del contexto actual dentro de la partición especificada, ordenada por el orden especificado. If no se encuentra una coincidencia y, a continuación, rank se blank.

Sintaxis

DAX
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parámetros

Término Definición
ties (Opcional) Define cómo controlar la clasificación cuando dos or más filas están vinculadas.
If especificado, el value admitido es DENSE, or SKIP.
If omitido:
: el valor predeterminado es SKIP.
relation (Opcional) Expresión de tabla desde la que se devuelve la fila de salida.
If especificado, all columnas de orderByandpartitionBy deben proceder de ella.
If omitido:
- orderBy debe especificarse explícitamente.
: las columnas de AllorderByandpartitionBy deben estar completas and provengan de una sola tabla.
: el valor predeterminado es ALLSELECTED() de all columnas de orderByandpartitionBy.
axis (Opcional) Eje de la forma visual. Disponible solo en cálculos visuales, and reemplaza relation.
orderBy (Opcional) Una cláusula ORDERBY() que contiene las columnas que define cómo se ordena cada partición.
If omitido:
- relation debe especificarse explícitamente.
: el valor predeterminado es ordenar por cada columna de relation que ya está not especificado en partitionBy.
blanks (Opcional) Enumeración que define cómo controlar blankvalues al ordenar.
los values admitidos son:
  • KEEP (el valuepredeterminado ), donde se ordena el comportamiento de los valuesblankvalues numéricos entre cero and negativo values. El comportamiento de las cadenas es blankvalues se ordenan antes de all cadenas, incluidas las cadenas vacías.
  • FIRST, los espacios en blanco siempre se ordenan al principio, independientemente del orden ascendente or orden descendente.
  • LAST, los espacios en blanco siempre se ordenan al final, independientemente del orden ascendente or orden descendente.

Nota, cuando blanks parámetro and espacios en blanco en ORDERBY() función en expresión individual se especifican, blanks en una expresión orderBy individual tiene prioridad para la expresión orderBy pertinente, andorderBy expresiones sin blanks especificarse respetarán blanks parámetro en la función principal Window.
partitionBy (Opcional) Cláusula PARTITIONBY() que contiene las columnas que define cómo se particionan relation.
If omitido, relation se trata como una sola partición.
matchBy (Opcional) Una cláusula MATCHBY() que contiene las columnas que define cómo hacer coincidir los datos and identificar la fila actual.
reset (Opcional) Solo está disponible en cálculos visuales. Indica if se restablece el cálculo, and en qué nivel de la jerarquía de columnas de la forma visual. Los values aceptados son: NONE, LOWESTPARENT, HIGHESTPARENT, or un entero. El comportamiento depende del signentero:
: If cero or omitido, el cálculo not restablece. Equivalente a NONE.
: If positivo, el entero identifica la columna a partir de la más alta, independiente del grano. HIGHESTPARENT equivale a 1.
: If negativo, el entero identifica la columna a partir del más bajo, en relación con el grano actual. LOWESTPARENT equivale a -1.

Devolver value

Número rank para el contexto actual.

Observaciones

  • Cada orderBy, partitionBy, andmatchBy columna debe tener un value externo correspondiente para ayudar a define la fila actual en la que se va a operar, con el siguiente comportamiento:

    • If hay exactamente una columna externa correspondiente, se usa su value.
    • If no hay ninguna columna externa correspondiente, a continuación:
      • RANK first determinar allorderBy, partitionByandmatchBy columnas que no tienen ninguna columna externa correspondiente.
      • Para cada combinación de values existentes para estas columnas en RANK contexto primario, RANK se evalúa and se devuelve una fila.
      • RANKla salida final es un número rank.
  • If matchBy está presente, RANK intentará usar columnas en matchByandpartitionBy para idenfity la fila actual.

  • If las columnas especificadas en orderByandpartitionBy no pueden identificar de forma única cada fila de relation, dos or más filas pueden tener la misma clasificación and el parámetro ties determinará la clasificación.

  • RANK devuelve un blankvalue para el total de filas. Se recomienda probar exhaustivamente la expresión.

  • RANK not compara con RANKX como SUM compara con SUMX.

  • reset solo se pueden usar en cálculos visuales, and no se pueden usar en combinación con orderByorpartitionBy. If reset está presente, se pueden especificar axis, pero no relation.

Ejemplo 1: columna calculada

La siguiente consulta DAX:

DAX
EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "Rank",
    RANK(
    	DENSE,
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
        LAST,
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Devuelve una tabla que clasifica cada geografía con el mismo englishCountryRegionName, por su StateProvinceName and City. Blank orderBy values de columna se ordenan al final.

Ejemplo 2: cálculo visual

El siguiente cálculo visual DAX consultas:

DAX
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

Cree dos columnas que rank cada month por el total de ventas, ambas dentro de cada year, and todo el historial.

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

DAX de cálculo visual

INDEX
ORDERBY
PARTITIONBY
WINDOW
ROWNUMBER