POSIÇÃO
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 estará em branco.
Sintaxe
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parâmetros
Termo | Definição |
---|---|
Propriedades | (Opcional) Define como lidar com a classificação quando duas ou mais linhas estão empatadas. Se especificado, o valor suportado é DENSE ou SKIP. Se omitido: - O padrão é SKIP |
relação | (Opcional) Uma expressão de tabela da qual a linha de saída é retornada. Se especificado, todas as colunas em <orderBy> e <partitionBy> devem vir dele. Se omitido: - <orderBy> deve ser explicitamente especificado. - 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>. |
eixo | (Opcional) Um eixo na forma visual. Disponível apenas em cálculos visuais e substitui <a relação>. |
orderBy | (Opcional) Uma cláusula ORDERBY() que contém as colunas que definem como cada partição é classificada. Se omitida: - <a relação> deve ser explicitamente especificada. - Padrão para ordenar por cada coluna em <relação> que ainda não está especificado em <partitionBy>. |
espaços em branco | (Opcional) Uma enumeração que define como manipular valores em branco ao classificar. Os valores suportados são:
Observe que, quando <o parâmetro blanks> e os espaços em branco na função ORDERBY() na expressão individual são especificados, <os> espaços em branco na expressão orderBy individual têm prioridade para a expressão orderBy relevante, e as expressões orderBy sem <que espaços em branco sejam especificados> honrarão <o parâmetro blanks> na função Window pai. |
partiçãoPor | (Opcional) Uma cláusula PARTITIONBY() que contém as colunas que definem como <a relação> é particionada. Se omitida, <a relação> é tratada como uma única partição. |
matchBy | (Opcional) Uma cláusula MATCHBY() que contém as colunas que definem como fazer a correspondência de dados e identificar a linha atual. |
repor | (Opcional) Disponível apenas em cálculos visuais. Indica se o cálculo é redefinido e em que nível da hierarquia de colunas da forma visual. Os valores aceitos são: NONE, LOWESTPARENT, HIGHESTPARENT ou um inteiro. O comportamento depende do sinal inteiro: - Se zero ou omitido, o cálculo não é reiniciado. Equivalente a NENHUM. - Se positivo, o inteiro identifica a coluna a partir do mais alto, independente do grão. HIGHESTPARENT é equivalente a 1. - Se negativo, o inteiro identifica a coluna a partir do mais baixo, em relação ao grão atual. LOWESTPARENT é equivalente a -1. |
Valor devolvido
O número de classificação para o contexto atual.
Observações
Cada <coluna orderBy>, <partitionBy> e <matchBy> 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 existir uma coluna exterior correspondente, então:
- RANK determinará primeiro todas as <colunas orderBy<>, partitionBy> e <matchBy> que não tenham coluna externa correspondente.
- Para cada combinação de valores existentes para essas colunas no contexto pai RANK, RANK é avaliado e uma linha é retornada.
- A saída final do RANK é um número de classificação.
Se <matchBy> estiver presente, RANK tentará usar colunas em <matchBy> e <partitionBy> para idenfity a linha atual.
Se as colunas especificadas em <orderBy> e <partitionBy> não puderem identificar exclusivamente cada linha em <relação>, então duas ou mais linhas podem 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. Recomenda-se que teste a sua expressão minuciosamente.
RANK não se compara ao RANKX como SUM se compara ao SUMX.
<reset> pode ser usado apenas em cálculos visuais e não pode ser usado em combinação com <orderBy> ou <partitionBy>. Se <a redefinição> estiver presente, o eixo> pode ser especificado, <mas <a relação> 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 Ordem em brancoPor <> são classificados no final.
Exemplo 2 - cálculo visual
As seguintes consultas DAX de cálculo visual:
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: