Análisis de conjuntos y expresiones de conjuntos

El análisis de conjuntos permite definir un conjunto (o grupo) de valores de datos distinto del conjunto normal definido por las selecciones actuales.

Normalmente, cuando se realiza una selección, las funciones de agregación como, por ejemplo, Sum, Max, Min, Avg y Count se agregan a las selecciones realizadas: las selecciones actuales. Las selecciones definen automáticamente los conjuntos de datos que se van a agregar. Gracias a este análisis de conjuntos es posible definir grupos independientes de las selecciones actuales. Esto puede resultar útil para mostrar un valor determinado como, por ejemplo, la cuota de mercado de un producto en todas las regiones, independientemente de las selecciones actuales.

El análisis de conjuntos también es útil para realizar distintos tipos de comparaciones como, por ejemplo, para averiguar cuáles son los productos que mejor se venden y compararlos con los que registran peores ventas, o los productos de este año con respecto a los del año anterior.

Supongamos, por ejemplo, que comenzamos a trabajar en un documento seleccionando el año 2010 en un cuadro de lista. Las agregaciones se basarán en dicha selección y los gráficos solo mostrarán los valores de ese año. Al hacer nuevas selecciones, los gráficos se actualizarán de manera acorde. Las agregaciones se realizan sobre el conjunto de registros posibles definido por las selecciones actuales. Gracias al análisis de conjuntos, es posible definir un conjunto de interés que no dependa de las selecciones realizadas.

Crear expresiones de conjunto

Antes de analizar las distintas partes del ejemplo de análisis de conjuntos, es necesario distinguir las expresiones de conjuntos y los análisis de conjuntos:

Definir un conjunto de valores de campo se conoce como definir una expresión de conjunto, mientras que el uso de las expresiones de conjunto para analizar datos es lo que se conoce como análisis de conjuntos. En consecuencia, el resto de la sección se centra en las expresiones de conjuntos y en sus componentes.

A continuación se muestra un ejemplo de análisis de conjuntos: sum( {$<Year={2009}>} Sales ), en el que {$<Year={2009}>} es una expresión de conjunto.

Las expresiones de conjunto se rigen por dos reglas de sintaxis generales:

  • Las expresiones de conjunto se deben usar en una función de agregación. En este ejemplo, la función de agregación es sum(Sales).
  • Las expresiones de conjunto deben ir entre llaves {}. En el ejemplo, la expresión de conjunto es la siguiente: {$<Year={2009}>}.

Una expresión de conjuntos se compone de una combinación de las partes siguientes:

  • Identifiers. Uno o varios identificadores definen la relación existente entre la expresión de conjuntos y lo que se evalúa en el resto de la expresión. Las expresiones de conjuntos simples están compuestas por un único identificador como, por ejemplo, el símbolo del dólar {$}, que representa a todos los registros de la selección actual.
  • Operators. Si hay más de un identificador, se utilizan uno o varios operadores para refinar el conjunto de datos al especificar el modo en que los conjuntos de datos representados por los identificadores se combinan para crear, por ejemplo, un subconjunto o un superconjunto.
  • Modifiers. Es posible agregar uno o varios modificadores a la expresión de conjuntos para modificar la selección. También se puede usar un modificador solo para modificar un identificador y filtrar el conjunto de datos.

Ejemplos:  

Ejemplo 1:  

{$<Year={2009}>}

Esta expresión de conjunto contiene un identificador $ y el modificador <Year={2009>}. Este ejemplo no incluye ningún operador. La expresión de conjunto se interpreta como: "Todos los registros de la selección actual que pertenecen al año 2009".

Ejemplo 2:  

Sum({$<Year={2009}>+1<Country={"Sweden"}>} Sales)

Esta expresión de conjunto contiene los identificadores $ y 1, el operador + y los modificadores <Year={2009}> y <Country={'Sweden'}>.

Esta expresión de conjunto se ha diseñado para sumar las ventas del año 2009 asociadas con las selecciones actuales y añadir todo el conjunto completo de datos asociados con el país Sweden en todos los años.

Las expresiones de conjunto solo se pueden usar en expresiones para gráficos y no en expresiones de script.

En las subsecciones siguientes se describen los identificadores, los operadores y los modificadores.

Identificadores

Los identificadores definen la relación entre la expresión de conjunto y los valores de campo o la expresión que se están evaluando.

En nuestro ejemplo sum( {$<Year={2009}>} Sales ), el identificador es el símbolo del dólar $ que indica que el conjunto de registros que se va a evaluar está compuesto por todos los registros de la selección actual. Dicho conjunto se filtra mediante la parte del modificador de la expresión del conjunto. En expresiones de conjunto más complejas, es posible combinar dos identificadores con un operador.

Esta tabla muestra algunos identificadores comunes.

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 tanto equivalente a no declarar ninguna expresión de conjunto.
$1 Representa la selección anterior. $2 representa a toda la selección excepto a una y así sucesivamente.
$_1 Representa la selección siguiente (avance). $_2 representa a la selección siguiente excepto a una y así sucesivamente.
BM01 Puede utilizar cualquier ID o nombre de marcador.
MyAltState Puede referirse a todas las selecciones efectuadas en un estado alterno por su nombre de estado.

Esta tabla muestra algunos ejemplos con distintos identificadores.

Ejemplo Resultado
sum ({1} Sales) Devuelve el total de ventas del documento, descartando las selecciones pero no la dimensión.

sum ({$} Sales)

Devuelve las ventas de 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 del marcador BM01.

Operadores

Los operadores se utilizan para incluir, excluir o cruzar partes de conjuntos de datos o conjuntos de datos completos. Todos los operadores emplean conjuntos como operandos y devuelven un conjunto como resultado.

Esta tabla muestra los operadores que se pueden utilizar en las expresiones de conjunto.

Operador Descripción
+ Unión. Esta operación binaria devuelve un conjunto compuesto por los registros que pertenecen a cualquiera de los dos operandos de conjunto.
- Exclusión. Esta operación binaria devuelve un conjunto formado por los registros que pertenecen al primero, pero no al segundo, de los operandos de conjunto. Además, cuando se emplee como operador unario, devuelve el otro conjunto complementario.
* Intersección. Esta operación binaria devuelve un conjunto formado por los registros que pertenecen a ambos operandos de conjunto.
/ Diferencia simétrica (XOR). Esta operación binaria devuelve un conjunto formado por los registros que pertenecen a cualquiera, pero no ambos, de los operandos de conjunto.

Esta tabla muestra algunos ejemplos con operadores.

Ejemplos Resultados
sum( {1-$} Sales ) Devuelve las ventas de todo lo excluido por la selección.
sum( {$*BM01} Sales ) Devuelve las ventas de la intersección entre la selección y el marcador BM01.
sum( {-($+BM01)} Sales )

Devuelve las ventas excluidas por la selección y el marcador BM01.

Sum({$<Year={2009}>+1<Country={"Sweden"}>} Sales) Devuelve las ventas del año 2009 asociadas con las selecciones actuales y añadir todo el conjunto completo de datos asociados con el país Sweden en todos los años.

Modificadores

Los modificadores se utilizan para hacer adiciones o cambios en las selecciones. Dichas modificaciones se pueden escribir en la expresión de conjunto. Un modificador consta de varios nombres de campos seguidos por una o varias selecciones que se pueden hacer en el campo. Los modificadores empiezan y terminan con paréntesis angulares <>.

Un modificador de conjunto modifica la selección del identificador de conjunto precedente. Si no se especifica ningún identificador de conjunto se entiende como implícito el actual estado de las selecciones.

Esta tabla muestra algunos ejemplos con modificadores.

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 EE. UU., descartando la selección actual.

sum({$<Region = >} Sales)

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

sum({<Region = >} Sales)

Devuelve lo mismo que el ejemplo anterior. Cuando se omite el identificador de conjunto que se ha de modificar se toma el estado heredado.

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

Vea: Modificadores de conjunto para una descripción más detallada de los modificadores y su uso en análisis de conjuntos más complejos.