Análisis de conjuntos y expresiones de conjunto
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 pueden utilizar tanto dentro como fuera de las funciones de agregación y van incluidas entre llaves.
Ejemplo: Expresión de conjunto Inner
Sum( {$<Year={2021}>} Sales )
Ejemplo: Expresión de conjunto Outer
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Para más información sobre las expresiones de conjunto inner y outer, vea Expresiones de conjunto inner y outer.
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 conjunto y lo que se evalúa en el resto de la expresión. Las expresiones de conjunto simples constan de un único identificador como, por ejemplo, el símbolo de dólar {$}, que representa a todos los registros de 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.
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 de 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 de 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. |
Ejemplos:
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. |
Ejemplos:
Ejemplo | Resultado |
---|---|
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ñade 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.
Ejemplos:
MyField | 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. |
Modificadores de conjunto para una descripción más detallada de los modificadores y su uso en análisis de conjuntos más complejos.