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 pueden utilizar dentro y fuera de las funciones de agregación y van encerradas entre llaves.

Ejemplo: Expresión de conjunto interna

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

Ejemplo: Expresión de conjunto externa

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

Para más información sobre las expresiones de conjunto internas y externas, vea Expresiones de conjunto internas y externas.

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

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

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

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

La expresión de conjunto anterior, por ejemplo, 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:

Para probar otras expresiones, vea Tutorial - Crear una expresión de conjunto.

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.

Identificador Descripción
1 Representa el conjunto completo de todos los registros de la aplicación, independientemente de las selecciones realizadas.
$ Representa los registros de la selección actual. La expresión de conjunto {$} es, por lo tanto, equivalente a no indicar una expresión de conjunto.
$1 Representa la selección anterior. $2 representa la selección anterior menos una, y así sucesivamente.
$_1 Representa la selección siguiente (avance). $_2 representa la siguiente selección menos una, y así sucesivamente.
BM01 Puede utilizar cualquier ID o nombre de marcador.
MyAltState Puede referirse a las selecciones efectuadas en un estado alterno por su nombre de estado.
Ejemplo Resultado
sum ({1} Sales) Devuelve el total de ventas de la app, descartando las selecciones pero no la dimensión.

sum ({$} Sales)

Devuelve las ventas para la selección actual, es decir, lo mismo que sum(Sales).

sum ({$1} Sales)

Devuelve las ventas de la selección anterior.

sum ({BM01} Sales)

Devuelve las ventas para el marcador llamado BM01.

Ejemplo Resultado
sum({$<OrderDate = DeliveryDate>} Sales) Devuelve las ventas de la selección actual donde OrderDate = DeliveryDate.

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

Devuelve las ventas de la región USA, descartando la selección actual.

sum({$<Region = >} Sales)

Devuelve las ventas de la selección, pero con la selección de Region eliminada.

sum({<Region = >} Sales)

Devuelve lo mismo que el ejemplo anterior. Cuando se omite el conjunto para modificar, se supone $.

sum({$<Year={2000}, Region={“U*”}>} Sales) Devuelve las ventas de la selección actual, pero con nuevas selecciones tanto en Year como en Region.

Más información