ROWNUMBER
aplica-se a:coluna calculada
tabela calculada
medida
cálculo visual
Retorna a classificação exclusiva do contexto atual na partição especificada, classificada de acordo com a ordem especificada. Se uma correspondência não puder ser encontrada, o número de linhas ficará em branco.
Sintaxe
ROWNUMBER ( [<relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parâmetros
Termo | Definição |
---|---|
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 apenas no 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 número de linha para o contexto atual.
Comentários
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 houver nenhuma coluna externa correspondente, então:
-
ROWNUMBER 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 ROWNUMBER contexto pai, ROWNUMBER é avaliado e uma linha é retornada.
- A saída final de ROWNUMBERé uma união dessas linhas.
-
ROWNUMBER primeiro determinará todas as colunas
- 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 da linha atual.
Se as colunas especificadas em orderBy
e partitionBy
não puderem identificar exclusivamente todas as linhas em relation
, então:
- ROWNUMBER tentará encontrar o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
- Se essas colunas puderem ser encontradas, ROWNUMBER
- Tente encontrar o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
- Acrescente 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 detectar um empate em runtime, um erro será retornado.
reset
pode ser usado somente em cálculos visuais e não pode ser usado em combinação com orderBy
ou partitionBy
. Se reset
estiver presente, axis
poderá ser especificado, mas relation
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
O seguinte cálculo visual DAX consultas:
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 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