Uso de variables para filtrar por una tabla secundaria

Puede ocurrir que se encuentre ante la situación de tener que filtrar un grupo de métricas desde una tabla secundaria. La imagen siguiente muestra un modelo de ejemplo.

En la mayoría de casos, se estaría buscando evaluar las donaciones por usuario. A continuación, podría comparar ese valor con el número de eventos a los cuales ha asistido una determinada persona. Ambas tareas se pueden conseguir fácilmente mediante un cálculo SUM of Donations.Amount and COUNT of Event.ID.

Pero ¿qué ocurre si desea información más granular, como por ejemplo, sobre las personas que acudieron a un determinado evento? Las métricas básicas permiten saber cuántas personas acudieron a un determinado evento con cualquier información demográfica en la tabla de usuarios. Sin embargo, ¿qué ocurre si desea saber la cantidad total de donaciones de las personas que acudieron a dicho evento? Como las tablas no están enlazadas directamente, no es posible usar las métricas básicas.

En esta situación, cada usuario puede haber asistido a varios eventos y haber hecho varias donaciones. Debido a la relación 1:N entre Usuarios y Eventos, probablemente no tenga sentido intentar cambiar el modelo de datos para desnormalizar las tablas.

Con el uso de las variables y de un filtro de métrica, puede crear un filtro en el panel para ordenar por eventos. La idea general es crear una métrica que haga un recuento de los eventos de los que forma parte cada usuario y luego, efectuar un filtro sobre dichos datos. Si una persona acudió a un evento (y con la lista ahora filtrada a ese elemento precisamente), obtendremos un valor de 1 que podemos usar para filtrar.

El primer paso es crear una variable y darle un nombre. En este ejemplo, la variable recibe el nombre de “Filtro del evento”. Defina este valor como una variable filtrada y seleccione el campo en la tabla Evento que desea ver en el panel. En este caso, el uso de Event.EventName funciona.

A continuación, cree una métrica que agregue esta configuración. Cree una nueva métrica con el nombre “Event Filter Metric” y defínala con el formato siguiente:

SELECT COUNT(EVENT.ID) by USER.ID, ALL OTHER WHERE Event Filter Variable

Representa un recuento del ID de la tabla secundaria (Evento), por el ID de la tabla principal, filtrado por la variable que acabamos de crear. Vaya a los informes del panel, y agregue un filtro de intervalo numérico. Para el atributo, seleccione el punto de conexión de nivel superior: User.ID en este caso. Para la métrica, seleccione Event Filter Metric donde > 0. Haga clic en Guardar.

Por último, vaya al panel y agregue un filtro de variable para el elemento que acaba de crear en el panel.

Ahora, cada vez que utilice el filtro de variable, puede filtrar los resultados según la pertenencia de dicho evento. Un elemento a tener en cuenta son los registros huérfanos en la tabla Donaciones. Cualquier donación que no esté vinculada a un usuario, se mostrará en todos los informes, independientemente del filtro. Este paso se puede fijar con un segundo filtro en todos los informes. Otro punto que hay que tener en cuenta es que este paso NO contará dos veces las donaciones. Si selecciona dos grupos, y hay una superposición de pertenencia, los miembros con doble recuento no verán duplicadas sus donaciones.