Usando a instrução OVER para referenciar fatias de dados

Expressões personalizadas são avaliadas nos segmentos de dados, representados pelos marcadores na visualização. Use instruções OVER em expressões personalizadas quando desejar incluir também dados de fora do segmento atual na avaliação de uma expressão.

Para explicar o que significa incluir dados de fora do segmento atual, veja a imagem abaixo. Uma imagem semelhante é usada para ilustrar os conceitos de segmentação e marcadores, que é essencial entender ao se trabalhar com expressões personalizadas, particularmente aquelas que contêm uma instrução OVER.

A caixa grande simboliza todas as linhas em uma tabela de dados contendo vendas anuais em diferentes regiões para alguns tipos de frutas, enquanto os cubos simbolizam diferentes segmentos de dados.



Suponha que você queira comparar Vendas de Laranjas, Norte, 2018 com Vendas de Limões, Oeste, 2018 ou com Vendas de Laranjas, Oeste, 2015-2017. Isto é, em tal expressão, você precisa fazer referência a segmentos de dados fora de Vendas de Laranjas, Norte, 2018, o que é feito usando a instrução OVER. A instrução OVER permite abrir novas formas de agrupar os dados a serem referenciados nas expressões.

A maneira mais fácil de explicar como escrever instruções OVER em expressões e como elas funcionam é por meio de exemplos.

Exemplos de expressões OVER

Nota: Primeiro de tudo, ao usar a instrução OVER em uma expressão para fazer referência a outras fatias, você não faz referência à coluna propriamente dita usada para segmentar os dados em um eixo. Em vez disso, você faz referência ao próprio eixo, como [Axis.X] ou [Axis.Color].

O gráfico de dispersão mostra a soma de vendas para cada fruta: maçãs, laranjas e peras. O total de vendas é 300.



Quando a expressão

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

é especificada no eixo Y, cada marcador é reavaliado, e o gráfico de dispersão muda para:



Para entender o resultado, use como exemplo o marcador que apresenta Soma de Vendas, Maçãs. A expressão personalizada implica que o marcador deve ser reavaliado para mostrar a soma das vendas para todas as fatias do eixo X, que é a soma das vendas de Maçãs, Laranjas e Peras (150+80+70). O mesmo vale para os outros marcadores e, portanto, todos os marcadores terminam em valores idênticos. De fato, a parte OVER (All([Axis.X])) da expressão implica que a segmentação no eixo X é ignorada!

No próximo exemplo, é feita uma segmentação adicional dos dados, conforme o ano é especificado no eixo de cores.



Altere o eixo Y para a seguinte expressão:

Sum([Sales]) OVER (All([Axis.Color]))



Essa expressão personalizada implica que cada marcador deve ser reavaliado para mostrar a soma das vendas de todos os segmentos de cor, na verdade, para ignorar a segmentação feita por cor.

Nota: As expressões usadas nos exemplos acima funcionam apenas quando são usados dados na memória. Se os dados no banco de dados forem usados, uma expressão THEN será necessária.

Use Peras, 2015, como exemplo (a estrela azul Peras). O novo valor do marcador mostra a soma das vendas de peras nos três anos (40+20+10). Todos os marcadores em um tipo de fruta obtêm o mesmo valor do eixo Y, independentemente da cor (Ano).

Não há um uso prático dos exemplos acima, mas eles servem como um meio para entender como a instrução OVER funciona em combinação com os chamados métodos de navegação por nós.

Usando instruções OVER em colunas calculadas

O uso da instrução OVER em colunas calculadas funciona de maneira diferente do uso em expressões personalizadas. Em colunas calculadas, isso pode levar a menos registros.