RANK
Se aplica a:columna Calculadatabla calculadaMedidacálculo visual
Devuelve la clasificación del contexto actual dentro de la partición especificada, ordenada por el orden especificado. Si no se encuentra ninguna coincidencia, la clasificación está en blanco.
Sintaxis
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 o más filas están vinculadas.
Si se especifica, el valor admitido es DENSE o SKIP. Si se omite: : el valor predeterminado es SKIP. |
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) Eje de 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:
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 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 , 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 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 clasificación del contexto actual.
Observaciones
Cada
orderBy
,partitionBy
ymatchBy
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:
-
RANK determinará primero todas las columnas
orderBy
,partitionBy
ymatchBy
que no tienen ninguna columna externa correspondiente. - Para cada combinación de valores existentes para estas columnas en RANK contexto primario, se evalúa RANK y se devuelve una fila.
- RANKla salida final es un número de clasificación.
-
RANK determinará primero todas las columnas
Si
matchBy
está presente, RANK intentará usar columnas enmatchBy
ypartitionBy
para idenfity la fila actual.Si las columnas especificadas en
orderBy
ypartitionBy
no pueden identificar de forma única todas las filas derelation
, es posible que dos o más filas tengan la misma clasificación y el parámetro ties determinará la clasificación.RANK devuelve un valor en blanco para las filas totales. Se recomienda probar exhaustivamente la expresión.
RANK no se compara con RANKX como SUM compara con SUMX.
reset
solo se pueden usar en cálculos visuales y no se pueden usar en combinación conorderBy
opartitionBy
. Sireset
está presente, se puede especificaraxis
pero no se puederelation
.
Ejemplo 1: columna calculada
La siguiente consulta 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 stateProvinceName y City. Los valores de columna orderBy
en blanco se ordenan al final.
Ejemplo 2: cálculo visual
El siguiente cálculo visual DAX consultas:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Cree dos columnas que clasifiquen 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:
de cálculo visual