NÚMERO DA LINHA

Aplica-se a:Colunacalculada Tabelacalculada MedidaCálculo visual

Retorna a classificação exclusiva para o contexto atual dentro da partição especificada, classificada pela ordem especificada. Se não for possível encontrar uma correspondência, o número da linha estará em branco.

Sintaxe

ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

Parâmetros

Termo Definição
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:
  • DEFAULT (o valor padrão), onde o comportamento para valores numéricos é valores em branco são ordenados entre zero e valores negativos. O comportamento para cadeias de caracteres é valores em branco são ordenados antes de todas as cadeias de caracteres, incluindo cadeias vazias.
  • PRIMEIRO, os espaços em branco são sempre ordenados no início, independentemente da ordem de classificação crescente ou decrescente.
  • Por último, os espaços em branco são sempre ordenados no final, independentemente da ordem de classificação crescente ou decrescente.

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 linha 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:
    • ROWNUMBER determinará primeiro todas as <colunas orderBy<>, partitionBy> e <matchBy> que não têm coluna externa correspondente.
    • Para cada combinação de valores existentes para essas colunas no contexto pai ROWNUMBER, ROWNUMBER é avaliado e uma linha é retornada.
    • A saída final de ROWNUMBER é uma união dessas linhas.
  • Se houver mais de uma coluna externa correspondente, um erro será retornado.

Se <matchBy> estiver presente, ROWNUMBER 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:

  • ROWNUMBER tentará encontrar o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
  • Se tais colunas puderem ser encontradas, ROWNUMBER
    • Tente encontrar o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
    • Anexe automaticamente essas novas colunas à <cláusula orderBy> .
    • Classifique cada partição usando este novo conjunto de colunas orderBy.
  • Se essas colunas não puderem ser encontradas e a função detetar um empate no tempo de execução, um erro será retornado.

<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',
    "UniqueRank",
    ROWNUMBER(
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

Retorna uma tabela que classifica exclusivamente cada geografia com o mesmo EnglishCountryRegionName, por seu StateProvinceName e City.

Exemplo 2 - cálculo visual

As seguintes consultas DAX de cálculo visual:

SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC))

Crie duas colunas que classificam exclusivamente cada mês pelo total de vendas, dentro de cada ano e por todo o histórico.

A captura de tela abaixo mostra a matriz visual e a primeira expressão de cálculo visual:

Cálculo visual DAX

ÍNDICE
ENCOMENDADO
PARTIÇÃOPOR
JANELA
POSIÇÃO