Funções OVER

As funções OVER são utilizadas para determinar como os dados devem ser cortados, por exemplo, em relação a períodos de tempo.

Nota: O uso de funções OVER é diferente para expressões personalizadas e para colunas calculadas. Em expressões personalizadas, você pode incluir referências a eixos, enquanto, em colunas calculadas, você só fazer referência a colunas ou hierarquias fixas.

Para obter mais informações, consulte Usando a instrução OVER para referenciar fatias de dados e Usando instruções OVER em colunas calculadas.

Opção Descrição
All Utiliza todos os nós na hierarquia referenciada. Isto pode ser útil quando interceptar o nó atual com mais de uma hierarquia. Por exemplo, você pode exibir as vendas relativas de categorias de produtos diferentes para cada mês.

Exemplos de expressões personalizadas:

Sum([Sales]) / Sum([Sales]) OVER (Intersect(All([Axis.Color]), [Axis.X]))

Sum([Sales]) / Sum([Sales]) OVER (All([Axis.X])) * 100

Exemplos de colunas calculadas:

Sum([Sales]) OVER All([Date])

Max([Sales]) OVER Intersect([Category], All([Date]))

AllNext Utiliza todos os nós, incluindo o atual, a partir do final do nível.

Exemplo de uma expressão personalizada:

Sum([Sales]) OVER (AllNext([Axis.X]))

Exemplos de colunas calculadas:

Sum([Sales]) OVER AllNext([Date])

Max([Sales]) OVER Intersect([Category], AllNext([Date]))

AllPrevious Utiliza todos os nós, incluindo o atual, a partir do início do nível. Isto pode ser usado para calcular a soma cumulativa.

Exemplos de expressões personalizadas:

Sum([Sales]) OVER (AllPrevious([Axis.X]))

Sum([Sales]) OVER (Intersect(Parent([Axis.X]), AllPrevious([Axis.X])))

Exemplos de colunas calculadas:

Sum([Sales]) OVER AllPrevious([Date])

Max([Sales]) OVER Intersect([Category], AllPrevious([Date]))

FirstNode Seleciona o primeiro nó do nível atual.

Exemplo de uma expressão personalizada:

Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Axis.X]))

Exemplo de uma coluna calculada:

Sum([Sales]) - Sum([Sales]) OVER (FirstNode([Hierarchy.TimeHierarchy]))

Intersect Retorna as linhas interceptadas dos nós em diferentes hierarquias. Consulte tambémAllPrevious eAll.

Exemplo de uma expressão personalizada:

Intersect(Parent([Axis.X]), All([Axis.Color]), Parent([Axis.Rows]), ...)

Exemplo de uma coluna calculada:

Sum([Sales]) OVER Intersect([Category], AllPrevious([Date]))

LastNode Seleciona o último nó do nível atual.

Exemplo de uma expressão personalizada:

Sum([Sales]) - Sum([Sales]) OVER (LastNode([Axis.X]))

Exemplo de uma coluna calculada:

Sum([Sales]) - Sum([Sales]) OVER (LastNode([Hierarchy.TimeHierarchy]))

LastPeriods Inclui o nó atual e os nós anteriores n - 1. Isto pode ser usado para calcular as médias móveis.

Exemplo de uma expressão personalizada:

Sum([Sales]) OVER (LastPeriods(3, [Axis.X]))/3

Exemplo de uma coluna calculada:

Sum([Sales]) - Sum([Sales]) OVER (LastPeriods([Hierarchy.TimeHierarchy]))

NavigatePeriod Esse método permite que você especifique sua própria navegação do nó. O método tem quatro argumentos:

Arg1 é a hierarquia para navegação.

Arg2 é um valor de sequência que especifica o nível na hierarquia até o qual navegar.

Arg3 é um inteiro que especifica o número de etapas para mover-se lateralmente na hierarquia no nível especificado por Arg1.

Arg4 é opcional e determina o nível na hierarquia para onde mover-se para baixo. Este argumento pode ser omitido no caso em que é feita uma navegação ao nível de folha.

Exemplos de expressões personalizadas:

Sum([Sales]) OVER NavigatePeriod([Axis.X], "Year", -1)

Sum([Value]) OVER NavigatePeriod([Axis.X], "Year", 0, 0)

Sum([Sales]) OVER NavigatePeriod([Axis.X], 2, -1, 2)

Exemplo de uma coluna calculada:

Avg([Sales]) OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,-10)) - Avg([Sales])OVER (NavigatePeriod([Hierarchy.TimeHierarchy],0,10))

Next Compara o nó atual com o nó seguinte no mesmo nível na hierarquia. Se não houver um nó seguinte, ou seja, se o nó atual for o último nó para o nível atual, o subconjunto resultante não conterá quaisquer linhas.

Exemplos de expressões personalizadas:

Sum([Sales]) - Sum([Sales]) OVER (Next([Axis.X]))

Count() OVER Next([Axis.X], 2)

Exemplo de uma coluna calculada:

Max([Sales]) OVER (Intersect([Category],Next([Year])))

NextPeriod Utiliza o nó seguinte que possui o valor seguinte no mesmo nível que o nó atual. Se não houver um nó seguinte, ou seja, se o nó atual for o último nó para o nível atual, o subconjunto resultante não conterá quaisquer linhas.

Exemplos de expressões personalizadas:

Sum([Sales]) OVER (NextPeriod([Axis.X]))

Count() OVER NextPeriod([Axis.X], 2)

Exemplo de uma coluna calculada:

Max([Sales]) OVER (Intersect([Category],NextPeriod([Year])))

ParallelPeriod Utiliza o nó paralelo anterior com o mesmo valor no mesmo nível que o nó atual. Por exemplo, isto pode ser utilizado para comparar os resultados de vendas de cada mês com os meses correspondentes do ano anterior.

Exemplo de uma expressão personalizada:

Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Axis.X]))

Exemplo de uma coluna calculada:

Sum([Sales])-Sum([Sales]) OVER (ParallelPeriod([Hierarchy.TimeHierarchy]))

Parent Utiliza o subconjunto principal do nó atual. Todas as linhas são usadas como o subconjunto se o nó não tem um pai.

Exemplos de expressões personalizadas:

Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.Color]))

Sum([Sales]) / Sum([Sales]) OVER (Parent([Axis.X])) * 100

Avg([Sales]) OVER Parent([Axis.X])

Exemplo de uma coluna calculada:

Sum([Sales]) OVER (Parent([Hierarchy.TimeHierarchy]))

Previous Utiliza o nó anterior no mesmo nível do nó atual para comparar o resultado do nó atual com o anterior. Se não houver um nó anterior, ou seja, se o nó atual for o primeiro nó para o nível atual, o subconjunto resultante não conterá quaisquer linhas.

Exemplos de expressões personalizadas:

Sum([Sales]) - Sum([Sales]) OVER (Previous([Axis.X]))

Count() OVER Previous([Axis.X], 2)

Exemplo de uma coluna calculada:

Max([Sales]) OVER (Intersect([Category],Previous([Year])))

PreviousPeriod Utiliza o nó anterior que possui o valor anterior no mesmo nível que o nó atual. Se não houver um nó anterior, ou seja, se o nó atual for o primeiro nó para o nível atual, o subconjunto resultante não conterá quaisquer linhas.

Exemplos de expressões personalizadas:

Sum([Sales]) OVER (PreviousPeriod([Axis.X]))

Count() OVER PreviousPeriod([Axis.X], 2)

Exemplo de uma coluna calculada:

Max([Sales]) OVER (Intersect([Category],PreviousPeriod([Year])))

Veja tambémFunções.