Compartilhar via


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:
- Iffrom_type é REL, o número de linhas para voltar (valuenegativo) or para frente (valuepositivo) da linha atual para obter a linha first no window.
- Iffrom_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 AllorderByandpartitionBy devem ser nomes de coluna totalmente qualificados and provenientes de uma única tabela.
– O padrão é ALLSELECTED() de colunas all em orderByandpartitionBy.
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 matchByandpartitionBy, 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 relationforam adicionadas por funções de tabela DAX, um error é retornado.

If matchBy estiver presente, WINDOW tentará usar matchByandpartitionBy colunas para identificar a linha. If matchBy está not presente and as colunas especificadas em orderByandpartitionBy 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 orderByorpartitionBynot existe dentro de relation.
  • 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 orderByorpartitionBy. 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:

DAX 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.

INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM