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 realiza una selección, las funciones de agregación Sum, Max, Min, Avg y Count, por ejemplo, agregan sobre las selecciones que ha efectuado: 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 en una app podemos seleccionar el año 2010 mediante un panel de filtrado. Las agregaciones se basarán en dicha selección y las visualizaciones solo mostrarán los valores de ese año. Al realizar nuevas selecciones, las visualizaciones 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.

Aquí tiene 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).
  • Una expresión de conjunto debe estar encerrada entre llaves, {}. En este ejemplo, la expresión de conjunto es: {$<Year={2009}>}.

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

  • Identificadores. 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. Una expresión de conjunto simple consiste en un único identificador, como el signo dólar, {$}, que significa todos los registros en la selección actual.
  • Operadores. 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.
  • Modificadores. 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.

Examples:  

Example 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 en la selección actual que pertenecen al año 2009".

Example 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 está diseñada para sumar las ventas del año 2009 asociadas con las selecciones actuales y agregar el conjunto completo de datos asociados con el país Sweden en todos los años.

Nota: Las expresiones de conjuntos solo se pueden usar en expresiones para visualizaciones 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 signo dólar, $, y significa que el conjunto de registros que se va a evaluar consiste en 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.

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

Esta tabla muestra algunos ejemplos con distintos identificadores.

Ejemplos con distintos identificadores.
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.

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.

Operadores
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.
/ Symmetric difference (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 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 agrega 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 remite a ningún identificador de conjunto, se considera el estado de selecciones actual.

Esta tabla muestra algunos ejemplos con modificadores.

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

Vea Modificadores de conjunto para una descripción más detallada de los modificadores y cómo usarlos en análisis de conjuntos más complejos.