RANK
aplica-se a:coluna calculada
tabela calculada
medida
cálculo visual
Retorna a classificação para o contexto atual dentro da partição especificada, classificada pela ordem especificada. Se uma correspondência não puder ser encontrada, a classificação ficará em branco.
Sintaxe
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parâmetros
Prazo | Definição |
---|---|
ties |
(Opcional) Define como lidar com a classificação quando duas ou mais linhas estão vinculadas.
Se especificado, o valor com suporte é DENSE ou SKIP. Se omitido: – Padrões para SKIP |
relation |
(Opcional) Uma expressão de tabela da qual a linha de saída é retornada.
Se especificado, todas as colunas em orderBy e partitionBy deverão vir dela.
Se omitido: - orderBy deve ser especificado explicitamente.- Todas as colunas orderBy e partitionBy devem ser totalmente qualificadas e provenientes de uma única tabela.
– O padrão é ALLSELECTED() de todas as colunas em orderBy e partitionBy . |
axis |
(Opcional) Um eixo na forma visual. Disponível apenas em cálculos visuais e substitui relation . |
orderBy |
(Opcional) Uma cláusula ORDERBY() que contém as colunas que definem como cada partição é classificada.
Se omitido: - relation deve ser especificado explicitamente.
– O padrão é ordenar por cada coluna em relation que ainda não está especificada no partitionBy . |
blanks |
(Opcional) Uma enumeração que define como lidar com valores em branco ao classificar o relation ou axis .
os valores com suporte são:
Observação, quando o parâmetro blanks e espaços em branco na função ORDERBY() em expressões individuais são especificados, blanks na expressão orderBy individual tem prioridade para a expressão orderBy relevante e expressões orderBy sem blanks sendo especificadas respeitarão o parâmetro blanks na função pai. |
partitionBy |
(Opcional) Uma cláusula PARTITIONBY() que contém as colunas que definem como relation é particionado. Se omitida, relation será tratada como uma única partição. |
matchBy |
(Opcional) Uma cláusula MATCHBY() que contém as colunas que definem como corresponder dados e identificar a linha atual. |
reset |
(Opcional) Disponível somente em cálculos visuais. Indica se o cálculo é redefinido e em qual nível da hierarquia de colunas da forma visual. Os valores aceitos são: uma referência de campo a uma coluna na forma visual atual, NONE (padrão), LOWESTPARENT , HIGHESTPARENT ou um inteiro. O comportamento depende do sinal inteiro: – se zero ou omitido, o cálculo não é redefinido. Equivalente a NONE .
- Se positivo, o inteiro identifica a coluna a partir da mais alta, independente da granulação. HIGHESTPARENT é equivalente a 1.
- Se negativo, o inteiro identifica a coluna a partir do menor, em relação ao grão atual. LOWESTPARENT é equivalente a -1. |
Valor de retorno
O número de classificação do contexto atual.
Observações
Cada coluna
orderBy
,partitionBy
ematchBy
deve ter um valor externo correspondente para ajudar a definir a linha atual na qual operar, com o seguinte comportamento:- Se houver exatamente uma coluna externa correspondente, seu valor será usado.
- Se não houver nenhuma coluna externa correspondente, então:
-
RANK primeiro determinará todas as colunas
orderBy
,partitionBy
ematchBy
que não têm nenhuma coluna externa correspondente. - Para cada combinação de valores existentes para essas colunas em RANK contexto pai, RANK é avaliado e uma linha é retornada.
- RANKsaída final é um número de classificação.
-
RANK primeiro determinará todas as colunas
Se
matchBy
estiver presente, RANK tentará usar colunas emmatchBy
epartitionBy
para idenfity da linha atual.Se as colunas especificadas em
orderBy
epartitionBy
não puderem identificar exclusivamente cada linha emrelation
, duas ou mais linhas poderão ter a mesma classificação e a classificação será determinada pelo parâmetro ties.RANK retorna um valor em branco para o total de linhas. É recomendável que você teste sua expressão minuciosamente.
RANK não se compara a RANKX, pois SUM se compara a SUMX.
reset
pode ser usado somente em cálculos visuais e não pode ser usado em combinação comorderBy
oupartitionBy
. Sereset
estiver presente,axis
poderá ser especificado, masrelation
não.
Exemplo 1 – coluna calculada
A seguinte 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
Retorna uma tabela que classifica cada geografia com o mesmo EnglishCountryRegionName, por seu StateProvinceName e City. Os valores da coluna orderBy
em branco são classificados no final.
Exemplo 2 – cálculo visual
O seguinte cálculo visual DAX consultas:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
Crie duas colunas que classificam cada mês pelo total de vendas, dentro de cada ano, e todo o histórico.
A captura de tela abaixo mostra a matriz visual e a primeira expressão de cálculo visual:
de cálculo visual