Ir para conteúdo principal Skip to complementary content

Análise de conjunto

Ao fazer uma seleção em um aplicativo, você define um subconjunto de registros nos dados. Funções de agregação, como Sum(), Max(), Min(), Avg() e Count(), são calculadas com base nesse subconjunto.

Em outras palavras, sua seleção define o escopo da agregação, que define o conjunto de registros em que os cálculos são feitos.

A análise de conjunto oferece uma maneira de definir um escopo diferente do conjunto de registros definido pela seleção atual. Esse novo escopo também pode ser considerado uma seleção alternativa.

Isso pode ser útil se você deseja comparar a seleção atual com um valor específico, por exemplo, o valor do ano passado ou a participação no mercado global.

Expressões de conjunto

Expressões de conjunto podem ser usadas dentro e fora das funções de agregação e são colocadas entre colchetes.

Exemplo: Expressão de conjunto interna

Sum( {$<Year={2021}>} Sales )

Exemplo: Expressão de conjunto externa

{<Year={2021}>} Sum(Sales) / Count(distinct Customer)

Para obter mais informações sobre expressões de conjunto internas e externas, consulte Expressões de conjunto internas e externas.

Uma expressão de conjunto consiste em uma combinação dos seguintes elementos:

  • Identifiers. Um identificador de conjunto representa uma seleção, definida em outro lugar. Também representa um conjunto específico de registros nos dados. Pode ser a seleção atual, uma seleção de um marcador ou uma seleção de um estado alternado. Uma expressão de conjunto consiste de um identificador único, como o sinal de dólar, {$}, que significa todos os registros na seleção atual.

    Exemplos: $, 1, BookMark1, State2

    Consulte: Identificadores de conjunto

  • Operators. Um operador de conjunto pode ser usado para criar uniões, diferenças ou interseções entre diferentes identificadores de conjunto. Dessa forma, você pode criar um subconjunto ou superconjunto das seleções definidas pelos identificadores de conjunto.

    Exemplos: +, -, *, /

    Consulte: Operadores de conjunto

  • Modifiers. Um modificador de conjunto pode ser adicionado ao identificador de conjunto para alterar sua seleção. Um modificador também pode ser usado sozinho e, dessa forma, modificará o identificador padrão. Um modificador deve ser colocado entre sinais de maior e menor <…>.

    Exemplos: <Year={2020}>, <Supplier={ACME}>

    Consulte: Modificadores de conjunto

Os elementos são combinados para formar expressões de conjunto.

Elementos em uma expressão de conjunto

Elementos em uma expressão de conjunto.

A expressão de conjunto acima, por exemplo, é construída a partir da agregação Sum(Sales).

O primeiro operando retorna as vendas do ano 2021 para a seleção atual, que é indicada pelo identificador de conjunto $ e pelo modificador que contém a seleção do ano 2021. O segundo operando retorna Sales para Sweden e ignora a seleção atual, que é indicada pelo identificador de conjunto 1.

Por fim, a expressão retorna um conjunto que consiste nos registros que pertencem a qualquer um dos dois operandos de conjunto, conforme indicado pelo operador de conjunto +.

Para obter uma descrição completa da sintaxe, consulte Sintaxe para expressões de conjunto.

Exemplos

Exemplos que combinam os elementos da expressão de conjunto acima estão disponíveis nos seguintes tópicos:

Para experimentar outras expressões, consulte Tutorial - Criando uma expressão de conjunto.

Conjuntos naturais

Normalmente, uma expressão de conjunto representa um conjunto de registros no modelo de dados e uma seleção que define esse subconjunto de dados. Nesse caso, o conjunto se chama conjunto natural.

Identificadores de conjunto, com ou sem modificadores de conjunto, sempre representam conjuntos naturais.

No entanto, uma expressão de conjunto usando operadores de conjunto também representa um subconjunto dos registros, mas, em geral, ainda não pode ser descrita usando uma seleção de valores de campos. Essa expressão é um conjunto não natural.

Por exemplo, o conjunto especificado por {1-$} nem sempre pode ser definido por uma seleção. Portanto, não é um conjunto natural. Isso pode ser mostrado carregando os dados a seguir, adicionando-os a uma tabela e, em seguida, fazendo seleções com o uso de painéis de filtro.

Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];		

Fazendo seleções para Dim1 e Dim2, você obtém a exibição mostrada na tabela a seguir.

Tabela com conjuntos naturais e não naturais

Tabela com conjuntos naturais e não naturais.

A expressão de conjunto na primeira medida usa um conjunto natural: corresponde à seleção que é feita {$}.

A segunda medida é diferente. Ela usa {1-$}. Não é possível fazer uma seleção que corresponda a esse conjunto e, portanto, ele é um conjunto não natural.

Essa distinção tem uma série de consequências:

  • Modificadores de conjunto só podem ser aplicados a identificadores de conjunto. Eles não podem ser aplicados a uma expressão de conjunto arbitrária. Por exemplo, não é possível usar uma expressão de conjunto como: 

    { (BM01 * BM02) <Field={x,y}> }

    Aqui, os colchetes normais (redondos) implicam que a interseção entre BM01 e BM02 deve ser avaliada antes que o modificador de conjunto seja aplicado. A razão é que não há um conjunto de elementos que possa ser modificado.

  • Você não pode usar conjuntos não naturais dentro de funções de elementos P() e E(). Essas funções retornam um conjunto de elementos, mas não é possível deduzir o conjunto de elementos de um conjunto não natural.

  • Uma medida que usa um conjunto não natural nem sempre pode ser atribuída ao valor dimensional correto quando o modelo de dados tem muitas tabelas. Por exemplo, no gráfico a seguir, alguns números de vendas excluídos são atribuídos ao Country correto, enquanto outros têm NULL como Country.

    Gráfico com conjunto não natural

    Tabela com conjunto não natural.

    O que determina se a atribuição é feita ou não corretamente depende do modelo de dados. Nesse caso, o número não poderá ser atribuído se pertencer a um país que foi excluído pela seleção.

Identificador Descrição
1 Representa um conjunto completo de todos os registros no aplicativo, independente de quaisquer seleções feitas.
$ Representa os registros da seleção atual. A expressão de conjunto {$} é equivalente a não definir uma expressão de conjunto.
$1 Representa a seleção anterior. $2 representa seleção-menos-um anterior, e adiante.
$_1 Representa a próxima (para frente) seleção. $_2 representa a próxima seleção-mais-um, e adiante.
BM01 Você pode usar qualquer ID do marcador ou nome do marcador.
MyAltState Você pode fazer referência às seleções realizadas em um estado alternado por seu nome de estado.
Exemplo Resultado
sum ({1} Sales) Retorna o total das vendas no aplicativo, desconsiderando as seleções porém não a dimensão.

sum ({$} Sales)

Retorna as vendas da seleção atual , ou seja , o mesmo que sum(Sales).

sum ({$1} Sales)

Retorna as vendas da seleção anterior.

sum ({BM01} Sales)

Retorna as vendas do marcador chamado BM01.

Exemplo Resultado
sum({$<OrderDate = DeliveryDate>} Sales) Retorna as vendas da seleção atual onde OrderDate = DeliveryDate.

sum({1<Region = {US}>} Sales)

Retorna as vendas da região dos EUA, desconsiderando a seleção atual.

sum({$<Region = >} Sales)

Retorna as vendas da seleção, mas com a seleção em 'Region' removida.

sum({<Region = >} Sales)

Retorna o mesmo como o exemplo acima. Quando o conjunto para modificar for omitido, $ é adotado.

sum({$<Year={2000}, Region={“U*”}>} Sales) Retorna as vendas da seleção atual, mas com novas seleções ambas em 'Year' e em 'Region'.

Saiba mais