Elevación explícita
La elevación explícita es una característica del Motor de análisis ampliable de GoodData que le proporciona mayor flexibilidad para agregar métricas en los informes.
En el diagrama del modelo lógico de datos (LDM) que se muestra a continuación, las métricas agregadas a partir del hecho Valor, como SELECT SUM(Value)
, se pueden agregar mediante cualquiera de los atributos marcados en rojo. Recuerde que estos son los atributos con flechas que apuntan a Valor.
Con la elevación explícita puede cruzar el grano de la agregación mediante la palabra clave BY para bloquear el nivel de agregación en un atributo que de otro modo no podría segmentar una determinada métrica.
En el siguiente ejemplo en el mismo LDM, veamos cómo la elevación explícita permite segmentar la métrica Number of Residents
por Shop_ID
, incluso si Shop_ID
no parece estar relacionado con el hecho Número de residentes
.
Esta agregación se describe en mayor detalle en el Ejemplo 1 que se muestra a continuación.
Ejemplo 1: Elevación de un nivel de agregación
La siguiente métrica representa el número total de residentes en una localidad.
SELECT SUM(Number of Residents)
En el LDM del proyecto que se muestra a continuación, puede ver que la métrica Number of Residents
se puede segmentar por localidad (Town_ID
) o por condado (County
).
El informe resultante tiene el siguiente aspecto:
Con la elevación explícita, puede segmentar las métricas por otros atributos que no están directamente relacionados con el hecho fundamental de la métrica. En este caso, por ejemplo, puede modificar la definición para segmentar la métrica Number of Residents
por Shop_ID
.
SELECT SUM(Number of Residents) BY Shop_ID
El informe muestra ahora el Número de residentes
en la localidad en la que se ubican las tiendas. La métrica se agrega en el nivel Town_ID
.
Ahora puede comparar la métrica Number of Residents
con una métrica que represente los ingresos brutos de cada tienda (por ejemplo, el valor total de todas las transacciones agregadas en el nivel Shop_ID
).
Para contar los ingresos brutos, cree la siguiente métrica:
SELECT SUM(Value)
Puede desglosar esta métrica por cualquier atributo relacionado de mayor granularidad (vea los atributos en rojo del primer gráfico, más arriba) agregando dichos atributos en el nivel del informe.
Agregue por ejemplo los atributos County
, Town_ID
, y Shop_ID
al informe. Así podrá buscar correlaciones entre el número de residentes en la localidad en la que se ubica la tienda y los ingresos brutos de cada tienda.
Si desea una vista más detallada de la correlación entre dos métricas, quite los atributos County
y Town_ID
del informe y visualice el informe modificado como un gráfico de dispersión.
Ejemplo 2: Elevación mediante múltiples niveles de agregación
Con este mismo LDM del Ejemplo 1, puede evaluar a los directores que dirigen las tiendas con más éxito: calcule el valor total de la transacción asociado a cada director de tienda.
Ese Director
no está relacionado con el hecho Valor
en el LDM. Con la elevación explícita, puede agregar Valor
en el nivel de Shop_ID
y especificar que dichos valores deberían agregarse en el nivel Registros del empleado
. Esto permite segmentar por al atributo Director
relacionado con Registros del empleado
.
En primer lugar, escriba una métrica que agregue el Valor
de las transacciones en el nivel de cada tienda. Esto calcula el valor total de todas las transacciones efectuadas en cada tienda:
SELECT SUM(Value) BY Shop_ID
A continuación, agregue estos valores en el nivel de Registros de empleado
.
SELECT ((SELECT SUM(Value) BY Shop_ID)) BY Records of Employee
Por último, agregue la función de agregación MAX para resumir la métrica en el nivel del Director.
SELECT MAX(( SELECT (( SELECT SUM(Value) BY Shop_ID)) BY Records of Employee))
El anidamiento de SELECT alrededor de SUM evita un recuento doble (suponiendo que exista una relación de 1:1 entre los directores y las tiendas). Si la agregación se efectúa con SUM en lugar de con MAX, se multiplicaría cada valor por el número de empleados asignados al director y a la tienda.
Recuerde que si un director gestiona varias tiendas, esta métrica anidada da como resultado un doble recuento de los valores, que es un problema común en las relaciones M:N.
El informe resultante muestra la agregación de los valores de la transacción (el total de ingresos de las transacciones) segmentados por el director de la tienda.
Si bien cada uno de los Valores totales que se muestran están asociados a un Director, se agregan a nivel de tienda. Tener valores que se correspondan para los dos directores no significa que trabajen en la misma tienda: Alexander y Michael son directores en tiendas diferentes.
Cambie a una visualización diferente para ver quién dirige las tiendas con más rendimiento y los ingresos brutos obtenidos por el director de cada tienda.
Ejemplo 3: Elevación explícita avanzada
También puede contar el tiempo medio que transcurre entre las dos primeras transacciones de un cliente.
Utilice la elevación explícita para bloquear la Fecha de transacción
en el nivel de transacción con la palabra clave BY
. A continuación, puede calcular la diferencia entre las fechas de transacción para cada comprador. Muestra el período de tiempo para cada comprador, así como el tiempo medio transcurrido entre las transacciones entre todos los compradores.
En primer lugar, debe contar las fechas de las transacciones. Seleccione los valores de fecha de las distintas transacciones, no hace falta ninguna agregación.
SELECT Date (Transaction Date) BY Records of Transaction
Para saber si es necesaria una función de agregación en una expresión, visualice el proceso que desea llevar a cabo en el LDM desde el proyecto:
Dirección transversal | Agregación obligatoria |
---|---|
Avanzar en un flecha de izquierda a derecha | Esto es elevación explícita. No requiere agregación. |
Avanzar en un flecha de derecha a izquierda | Es agregación. Requiere una función de agregación. |
A continuación, cree dos métricas que hagan referencia a la métrica elevada Fecha de transacción:
- Una métrica que filtra las primeras fechas de compra
- Una métrica que filtra las segundas fechas de compra
SELECT MAX(Transaction date lifted) WHERE Purchase Number = 1
SELECT MAX(Transaction date lifted) WHERE Purchase Number = 2
Estas métricas agregan la Fecha de transacción elevada con una función MAX para filtrarla por el número de compra. El motivo es:
- SUM funciona si solo hay un valor en los datos que se corresponda con tener un Número de compra = 2. Si hay varios valores en los que Número de compra = 2, la métrica hace un recuento doble de los valores.
- AVG se parece mucho a la intención de la métrica. AVG, sin embargo, tarda más tiempo en calcularse.
Por último, cree una métrica que calcule la diferencia entre las métricas de la fecha de compra. Después puede desglosar el resultado final por Comprador
, que es el atributo en el nivel del informe.
SELECT AVG(Second purchase date - First purchase date)
El informe resultante muestra la duración entre la primera y la segunda visita desglosada por el atributo Comprador.
Se agrega la métrica Total Value
al informe (SELECT SUM(Value)
) para buscar correlaciones en duración entre las transacciones iniciales y el importe total enviado.
Para encontrar la duración promedio entre las dos primeras transacciones en todos los compradores, modifique la métrica y quite todos los atributos del informe:
SELECT AVG((SELECT Second purchase date - First purchase date BY Shopper))