Ir para conteúdo principal

Análise de conjunto e

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 são usadas dentro de funções de agregação, entre colchetes. Por exemplo:

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

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

  • Identificadores. 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

  • Operadores. 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

  • Modificadores. 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:

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.