WINDOW
aplica-se a:coluna calculadatabela calculadaMeasurecá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 window é iniciada. Pode ser qualquer expressão DAX que retorna um valueescalar.
O comportamento depende do parâmetro from_type : - If from_type é REL, o número de linhas para voltar (valuenegativo) or para frente (valuepositivo) da linha atual para obter a linha first no window.
- If from_type é ABS, andfrom é positivo, então é a posição do início da window desde o início da partição. A indexação é baseada em 1. Por exemplo, 1 significa que window começa desde o início da partição.
If
from é negativo, então é a posição do início da window do final da partição. -1 significa a linha last na partição. |
from_type |
Modifica o comportamento do parâmetro from . Possíveis values são ABS (absoluto) and REL (relativo). O padrão é REL. |
to |
O mesmo que from , mas indica o final do window. A linha last está incluída no window. |
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.
If especificada, all colunas em partitionBy devem vir dela or uma tabela related.
If omitido: - orderBy deve ser explicitamente especificado.– expressões All orderBy andpartitionBy devem ser nomes de coluna totalmente qualificados and provenientes de uma única tabela.
– O padrão é ALLSELECTED() de colunas all em orderBy andpartitionBy . |
axis |
(Opcional) Um eixo na forma visual. Disponível somente em cálculos visuais, and substitui relation . |
orderBy |
(Opcional) Uma cláusula ORDERBY() que contém as expressões que define como cada partição é classificada.
If omitido: - relation deve ser explicitamente especificado.
– O padrão é ordenar por cada coluna em relation que já está not especificada em partitionBy . |
blanks |
(Opcional) Uma enumeração que define como lidar com blankvalues ao classificar.
Esse parâmetro é reservado para uso futuro. Atualmente, o único value com suporte é DEFAULT , em que o comportamento do values numérico é blankvalues é ordenado entre zero andvaluesnegativo. O comportamento das cadeias de caracteres é blankvalues são ordenados antes de all cadeias de caracteres, incluindo cadeias de caracteres vazias. |
partitionBy |
(Opcional) Uma cláusula PARTITIONBY() que contém as colunas que define como relation é particionada.
If omitido, relation é tratado como uma única partição. |
matchBy |
(Opcional) Uma cláusula MATCHBY() que contém as colunas que define como corresponder dados and identificar a linha atual. |
reset |
(Opcional) Disponível apenas no cálculos visuais. Indica if as redefinições de cálculo, and em qual nível da hierarquia de colunas da forma visual. Os values aceitos são: NONE , LOWESTPARENT , HIGHESTPARENT , or um inteiro. O comportamento depende do inteiro sign: - If zero or omitido, o cálculo not redefinição. Equivalente a NONE .
- If positivo, o inteiro identifica a coluna a partir da mais alta, independentemente da granulação. HIGHESTPARENT é equivalente a 1.
- If negativo, o inteiro identifica a coluna a partir do menor, em relação ao grão atual. LOWESTPARENT é equivalente a -1. |
Retornar value
All linhas do window.
Comentários
Except para colunas adicionadas por funções de tabela DAX, cada coluna em relation
, quando matchBy
estiver not presente, or cada coluna em matchBy
andpartitionBy
, quando matchBy
estiver presente, deverá ter uma value externa correspondente para ajudar a define linha atual na qual operar.
If
from_type
and
to_type
ambos têm valueABS, então o seguinte se aplica somente às colunas partitionBy
:
- If há exatamente uma coluna externa correspondente, sua value é usada.
-
If não há nenhuma coluna externa correspondente:
- WINDOW first determinará all colunas que não têm nenhuma coluna externa correspondente.
- Para cada combinação de values existentes para essas colunas no contexto pai do WINDOW, WINDOW é avaliado, and as linhas correspondentes são retornadas.
- WINDOW saída final é um union dessas linhas.
- If há mais de uma coluna externa correspondente, um error é retornado.
If
all das colunas de relation
foram adicionadas por funções de tabela DAX, um error é retornado.
If
matchBy
estiver presente, WINDOW tentará usar matchBy
andpartitionBy
colunas para identificar a linha.
If
matchBy
está not presente and as colunas especificadas em orderBy
andpartitionBy
não podem identificar exclusivamente todas as linhas em relation
; em seguida:
- WINDOW tentará find o menor número de colunas adicionais necessárias para identificar exclusivamente cada linha.
-
If essas colunas puderem ser encontradas, WINDOW anexará automaticamente essas novas colunas a
orderBy
, and cada partição for classificada usando esse novo conjunto de colunas de orderBy. - If essas colunas não puderem ser encontradas, um error será retornado.
Uma tabela vazia é retornada if:
- A value externa correspondente de uma coluna
orderBy
orpartitionBy
not existe dentro derelation
. - Toda a window está fora da partição, or o início da window é após o término.
If
WINDOW é usado em uma coluna calculada definida na mesma tabela que relation
, andorderBy
é omitida, um error é retornado.
If o início do window é antes da linha first, então ele é definido como a linha first. Da mesma forma, if final do window é após a linha last da partição, então ela é definida como a linha last.
reset
pode ser usado somente em cálculos visuais, and não pode ser usado em combinação com orderBy
orpartitionBy
.
If
reset
está presente, axis
pode ser especificado, mas relation
não.
Exemplo 1 – measure
O seguinte measure:
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 adayaverage de preços unitários de cada product. Observe que adaywindow 3 consiste em três dias em que o product tem vendas, not necessariamente três calendar dias consecutivos.
Exemplo 2 – measure
O seguinte measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
Retorna o sum em execução para Vendas Totais Month Número de Year, reiniciando para cada YearFiscal:
Year | Month número de Year | 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 month, calculadas ao longo de cada year. O values 1 and -2 pode ser usado em vez de HIGHESTPARENT
, com os mesmos resultados.
A captura de tela abaixo mostra a matriz visual and a expressão de cálculo visual:
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 as vendas totais cumulativas por month, calculadas ao longo de cada quarter.
Related conteúdo
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM