Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:Coluna calculada
Tabela calculadaMedir
Cálculo visual
Retorna várias linhas posicionadas dentro do intervalo determinado.
Sintaxe
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
Parâmetros
Termo | Definição |
---|---|
from |
Indica onde a janela é iniciada. Pode ser qualquer expressão DAX que retorna um valor escalar.
O comportamento depende do parâmetro from_type : – se from_type for REL, o número de linhas a serem retornadas (valor negativo) ou para frente (valor positivo) da linha atual para obter a primeira linha na janela.
- Se from_type for ABSe from for positivo, será a posição do início da janela desde o início da partição. A indexação é baseada em 1 e 0 é interpretada como 1. Por exemplo, 0 e 1 significam que a janela começa desde o início da partição. Se from for negativo, será a posição do início da janela a partir do final da partição. -1 significa a última linha na partição. |
from_type |
Modifica o comportamento do parâmetro from . Os valores possíveis são ABS (absoluto) e REL (relativo). O padrão é REL. |
to |
O mesmo que from , mas indica o final da janela. A última linha está incluída na janela. |
to_type |
O mesmo que from_type , mas modifica o comportamento de to . |
relation |
(Opcional) Uma expressão de tabela da qual as linhas de saída são retornadas. Se usado em cálculos visuais, esse parâmetro aceita um eixo na forma visual.
Se especificado, todas as colunas em partitionBy deverão vir dela ou de uma tabela relacionada.
Se omitido: - orderBy deve ser especificado explicitamente.- Todas as expressões orderBy e partitionBy devem ser nomes de coluna totalmente qualificados e provenientes de uma única tabela.
– O padrão é ALLSELECTED() de todas as colunas em orderBy e partitionBy . |
orderBy |
(Opcional) Uma cláusula ORDERBY() que contém as expressões 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:
Observe que, quando o parâmetro e os blanks ORDERBY espaços em branco na função () 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 serem especificadas respeitarão o blanks parâmetro na função pai. |
partitionBy |
(Opcional) Uma PARTITIONBYcláusula () que contém as colunas que definem como relation é particionado. Se omitida, relation será tratada como uma única partição. |
matchBy |
(Opcional) Uma MATCHBYcláusula () 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
Todas as linhas da janela.
Comentários
Com exceção das colunas adicionadas por funções de tabela DAX, cada coluna em relation
, quando matchBy
não estiver presente ou cada coluna em matchBy
e partitionBy
, quando matchBy
estiver presente, deve ter um valor externo correspondente para ajudar a definir a linha atual na qual operar. Se from_type
e to_type
tiverem ABSde valor, o seguinte se aplicará somente às colunas partitionBy
:
- Se houver exatamente uma coluna externa correspondente, seu valor será usado.
- Se não houver nenhuma coluna externa correspondente:
- WINDOW primeiro determinará todas as colunas que não têm nenhuma coluna externa correspondente.
- Para cada combinação de valores existentes para essas colunas no contexto pai do WINDOW, WINDOW é avaliado e as linhas correspondentes são retornadas.
- WINDOW saída final é uma união dessas linhas.
- Se houver mais de uma coluna externa correspondente, um erro será retornado.
Se todas as colunas de relation
foram adicionadas por DAX funções de tabela, um erro será retornado.
Se matchBy
estiver presente, WINDOW tentará usar colunas matchBy
e partitionBy
para identificar a linha.
Se matchBy
não estiver presente e as colunas especificadas em orderBy
e partitionBy
não puderem identificar exclusivamente todas as linhas em relation
, então:
- WINDOW tentará encontrar o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
- Se essas colunas puderem ser encontradas, WINDOW anexará automaticamente essas novas colunas a
orderBy
e cada partição será classificada usando esse novo conjunto de colunas orderBy. - Se essas colunas não puderem ser encontradas, um erro será retornado.
Uma tabela vazia será retornada se:
- O valor externo correspondente de uma coluna
orderBy
oupartitionBy
não existe dentro derelation
. - A janela inteira está fora da partição ou o início da janela é após o término.
Se WINDOW for usado em uma coluna calculada definida na mesma tabela que relation
e orderBy
for omitido, um erro será retornado.
Se o início da janela for antes da primeira linha, ele será definido como a primeira linha. Da mesma forma, se o final da janela estiver após a última linha da partição, ele será definido como a última linha.
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.
Se o valor for reset
absoluto (ou seja, um inteiro HIGHESTPARENT
positivo ou uma referência de campo) e o cálculo for avaliado em ou acima do nível de destino na hierarquia, o cálculo será redefinido para cada elemento individual. Ou seja, a função é avaliada dentro de uma partição que contém apenas esse elemento específico.
Exemplo 1 – medida
A seguinte medida:
3-day Average Price =
AVERAGEX(
WINDOW(
-2,REL,0,REL,
SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]),
ORDERBY('Date'[Date]),
KEEP,
PARTITIONBY('Product'[Product])
),
CALCULATE(AVERAGE(Sales[Unit Price]))
)
Retorna a média de 3 dias de preços unitários para cada produto. Observe que a janela de três dias consiste em três dias em que o produto tem vendas, não necessariamente três dias consecutivos.
Exemplo 2 – medida
A seguinte medida:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Retorna a soma em execução para o Total de Vendas por Mês Número do Ano, reiniciando para cada Ano Fiscal:
Ano | Número de mês do ano | Valor das Vendas | RunningSum |
---|---|---|---|
FY2018 | 1 | US$ 1.327.675 | US$ 1.327.675 |
FY2018 | 2 | US$ 3.936.463 | US$ 5.264.138 |
FY2018 | 3 | US$ 700.873 | US$ 5.965.011 |
FY2018 | 4 | US$ 1.519.275 | US$ 7.484.286 |
FY2018 | 5 | US$ 2.960.378 | US$ 10.444.664 |
FY2018 | 6 | US$ 1.487.671 | US$ 11.932.336 |
FY2018 | 7 | US$ 1.423.357 | US$ 13.355.693 |
FY2018 | 8 | US$ 2.057.902 | US$ 15.413.595 |
FY2018 | 9 | US$ 2.523.948 | US$ 17.937.543 |
FY2018 | 10 | US$ 561.681 | US$ 18.499.224 |
FY2018 | 11 | US$ 4.764.920 | US$ 23.264.145 |
FY2018 | 12 | US$ 596.747 | US$ 23.860.891 |
FY2019 | 1 | US$ 1.847.692 | US$ 1.847.692 |
FY2019 | 2 | US$ 2.829.362 | US$ 4.677.054 |
FY2019 | 3 | US$ 2.092.434 | US$ 6.769.488 |
FY2019 | 4 | US$ 2.405.971 | US$ 9.175.459 |
FY2019 | 5 | US$ 3.459.444 | US$ 12.634.903 |
FY2019 | 6 | US$ 2.850.649 | US$ 15.485.552 |
FY2019 | 7 | US$ 2.939.691 | US$ 18.425.243 |
FY2019 | 8 | US$ 3.964.801 | US$ 22.390.045 |
FY2019 | 9 | US$ 3.287.606 | US$ 25.677.650 |
FY2019 | 10 | US$ 2.157.287 | US$ 27.834.938 |
FY2019 | 11 | US$ 3.611.092 | US$ 31.446.030 |
FY2019 | 12 | US$ 2.624.078 | US$ 34.070.109 |
FY2020 | 1 | US$ 3.235.187 | US$ 3.235.187 |
FY2020 | 2 | US$ 4.070.046 | US$ 7.305.233 |
FY2020 | 3 | US$ 4.429.833 | US$ 11.735.066 |
FY2020 | 4 | US$ 4.002.614 | US$ 15.737.680 |
FY2020 | 5 | US$ 5.265.797 | US$ 21.003.477 |
FY2020 | 6 | US$ 3.465.241 | US$ 24.468.717 |
FY2020 | 7 | US$ 3.513.064 | US$ 27.981.781 |
FY2020 | 8 | US$ 5.247.165 | US$ 33.228.947 |
FY2020 | 9 | US$ 5.104.088 | US$ 38.333.035 |
FY2020 | 10 | US$ 3.542.150 | US$ 41.875.184 |
FY2020 | 11 | US$ 5.151.897 | US$ 47.027.081 |
FY2020 | 12 | US$ 4.851.194 | US$ 51.878.275 |
Exemplo 3: Cálculo visual
O seguinte cálculo visual DAX consulta:
TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])
Retorna as vendas totais cumulativas por mês, calculadas ao longo de cada ano. O valor 1 pode ser usado em vez de HIGHESTPARENT
, com o mesmo resultado.
A captura de tela abaixo mostra a matriz visual e a expressão de cálculo visual:
Exemplo 4: cálculo visual
O seguinte cálculo visual DAX consulta:
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
Retorna o total cumulativo de vendas por mês, calculado ao longo de cada trimestre.
O valor LOWESTPARENT
pode ser usado em vez de -1, com o mesmo resultado.
Conteúdo relacionado
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM