Saltar al contenido principal

Análisis de conjuntos

Cuando realiza una selección en una app, define un subconjunto de registros en los datos. Las funciones de agregación, como Sum(), Max(), Min(), Avg() y Count() se calculan basándose en este subconjunto.

En otras palabras, su selección define el ámbito de la agregación; define el conjunto de registros sobre los que se realizan los cálculos.

El análisis de conjuntos ofrece una forma de definir un ámbito que es diferente del conjunto de registros definido por la selección actual. Este nuevo ámbito también puede considerarse como una selección alternativa.

Esto puede resultar útil si desea comparar la selección actual con un valor particular, por ejemplo, el valor del año pasado o la cuota de mercado global.

Expresiones de conjunto

Las expresiones de conjunto se utilizan dentro de las funciones de agregación y van entre llaves. Por ejemplo:

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

Una expresión de conjunto consta de una combinación de los siguientes elementos:

  • Identificadores. Un identificador de conjunto representa una selección, definida en otro lugar. También representa un conjunto específico de registros en los datos. Podría ser la selección actual, una selección de un marcador o una selección de un estado alternativo. Una expresión de conjunto simple consiste en un identificador único y exclusivo, como el signo dólar, {$}, que significa todos los registros en la selección actual.

    Ejemplos: $, 1, BookMark1, State2

    Vea: Identificadores de conjunto

  • Operadores. Un operador de conjunto se puede utilizar para crear uniones, diferencias o intersecciones entre diferentes identificadores de conjunto. De esta forma, puede crear un subconjunto o un superconjunto de las selecciones definidas por los identificadores del conjunto.

    Ejemplos: +, -, *, /

    Vea: Operadores de conjunto

  • Modificadores. Se puede agregar un modificador de conjunto al identificador de conjunto para cambiar su selección. Un modificador también se puede usar por sí solo y luego modificará el identificador predeterminado. Un modificador debe ir incluido entre corchetes angulares <…>.

    Ejemplos:<Year={2020}><Supplier={ACME}>

    Vea: Modificadores de conjunto

Los elementos se combinan para formar expresiones de conjunto.

Elementos en una expresión de conjunto

Elementos en una expresión de conjunto.

Esta expresión de conjunto se construye a partir de la agregación Sum(Sales).

El primer operando devuelve las ventas del año 2021 de la selección actual, lo cual se indica mediante el identificador de conjunto $ y el modificador que contiene la selección del año 2021. El segundo operando devuelve las ventas Sales de Suecia: Sweden e ignora la selección actual, lo cual viene indicado por el identificador de conjunto 1.

Por último, la expresión devuelve un conjunto que se compone de los registros que pertenecen a cualquiera de los dos operandos de conjunto, tal como lo indica el operador de conjunto +.

Para una descripción completa de la sintaxis, vea Sintaxis para expresiones de conjuntos.

Ejemplos

Los ejemplos que combinan los elementos de la expresión de conjunto anterior están disponibles en los siguientes temas:

Conjuntos naturales

Por lo general, una expresión de conjunto representa tanto un conjunto de registros en el modelo de datos como una selección que define este subconjunto de datos. En este caso, el conjunto se denomina conjunto natural.

Los identificadores de conjuntos, con o sin modificadores de conjuntos, siempre representan conjuntos naturales.

Sin embargo, una expresión de conjunto que utiliza operadores de conjunto también representa un subconjunto de los registros, pero por lo general aún no se puede describir mediante una selección de valores de campo. Tal expresión no es un conjunto natural.

Por ejemplo, el conjunto dado por {1-$} no siempre puede definirse mediante una selección. Por lo tanto, no es un conjunto natural. Esto se puede mostrar cargando los siguientes datos, agregándolos a una tabla y luego haciendo selecciones usando paneles de filtrado.

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

Al hacer selecciones para Dim1 y Dim2, obtiene la vista que se muestra en la siguiente tabla.

Tabla con conjuntos naturales y no naturales.

Tabla con conjuntos naturales y no naturales.

La expresión de conjunto en la primera medida utiliza un conjunto natural: corresponde a la selección que se hace {$}.

La segunda medida es diferente. Utiliza {1-$}. No es posible hacer una selección que corresponda a este conjunto, por lo que es un conjunto no natural.

Esta distinción tiene varias consecuencias:

  • Los modificadores de conjuntos solo se pueden aplicar a identificadores de conjuntos. No se pueden aplicar a una expresión de conjunto arbitraria. Por ejemplo, no es posible utilizar una expresión de conjunto como: 

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

    Aquí, los paréntesis normales (redondeados) implican que la intersección entre BM01 y BM02 debe evaluarse antes de aplicar el modificador de conjunto. La razón es que no hay ningún conjunto de elementos que se pueda modificar.

  • No puede usar conjuntos no naturales dentro de las funciones de elementos P() y E(). Estas funciones devuelven un conjunto de elementos, pero no es posible deducir el conjunto de elementos de un conjunto no natural.

  • Una medida que utiliza un conjunto no natural no siempre se puede atribuir al valor dimensional correcto si el modelo de datos tiene muchas tablas. Por ejemplo, en el siguiente gráfico, algunas cifras de ventas excluidas se atribuyen a Country, mientras otras tienen NULL como Country.

    Gráfico con un conjunto no natural

    Tabla con un conjunto no natural.

    El hecho de que la asignación se realice correctamente o no depende del modelo de datos. En este caso, el número no se puede asignar si pertenece a un país que está excluido por la selección.