Cómo dimensionalizar una medida en Looker

Como regla general en SQL y, por extensión, en Looker, no puedes agrupar una consulta por los resultados de una función de agregación (representada en Looker como medidas). Solo puedes agrupar por campos no agregados (representados en Looker como dimensiones). Si intentas agregar una medida en Looker, verás el siguiente error:

Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.

¿Qué sucede si necesitas una forma de cambiar una medida (COUNT, SUM, AVG, MAX, etcétera) en una dimensión para poder agruparla y agregarla (como una SUM de un COUNT o un AVG de una SUM), filtrarla (en la cláusula WHERE en lugar de una cláusula HAVING) o realizar un giro en ella en una exploración?

Usa tablas derivadas para dimensionalizar una medida

De forma interna, en Looker, la solución se denomina dimensionalizar una medida. Esto se debe a que redefines una medida como una dimensión. Para ello, se crea una tabla derivada que incluye la medida que deseas dimensionalizar en su definición de SQL.

El proceso

El siguiente ejemplo se basa en un conjunto de datos de comercio electrónico de ejemplo. El objetivo de este ejemplo es crear una medida type: average que se base en una medida Ingresos totales type: sum existente.

En los siguientes pasos, se describe cómo generar una tabla derivada basada en SQL. Puedes crear una tabla derivada basada en LookML, también conocida como tabla derivada nativa (NDT), como alternativa a SQL.
  1. Para comenzar, configura una búsqueda de Explorar. Elige los campos adecuados, incluida la medida que deseas dimensionalizar.

    En el caso de uso de ejemplo, la tabla Datos de Explorar muestra los Ingresos totales agrupados por Estado del usuario y ID del usuario:

  2. Elige Open in SQL Runner en la pestaña SQL de la tabla Data para abrir la consulta en SQL Runner:

  3. Después de ejecutar la consulta en SQL Runner (haz clic en el botón Run) y confirmar los resultados, elige la opción Add to Project en el menú de ajustes de SQL Runner para abrir la ventana emergente Add to Project. En este punto, debes quitar cualquier cláusula de límite de filas en el SQL de la tabla derivada para asegurarte de que se incluyan todos los resultados deseados en la consulta.

    También puedes elegir Obtener LookML de tabla derivada en el menú para copiar y pegar el código de LookML generado en tu proyecto de forma manual.
  4. En la ventana emergente Add to Project, selecciona un nombre de proyecto en el menú desplegable Project, ingresa un nombre para el archivo de vista de tabla derivada y selecciona Add.
  5. Ahora que la tabla derivada está en un archivo de vista, puedes crear una medida que agregue la medida dimensionalizada. Por ejemplo, ahora puedes crear una medición type: average para la nueva dimensión Ingresos totales, order_items_total_revenue:
          dimension: order_items_total_revenue {
            type:  number
            sql: ${TABLE}.order_items.total_revenue ;;
            value_format_name: usd
          }
    
          measure: average_revenue {
            type:  average
            sql:  ${order_items_total_revenue} ;;
            value_format_name: usd
          }
        
  6. Vuelve a verificar que se defina una clave primaria en la tabla derivada.
  7. Une la vista nueva a la exploración original (o crea una nueva) para poder crear consultas y contenido con los campos nuevos.

Conclusión

La dimensionalización de las mediciones con tablas derivadas de Looker desbloquea nuevas funciones y te permite obtener más estadísticas con tus datos. Con la capacidad de agrupar por una medida dimensionalizada, filtrar por ella en una cláusula WHERE (en lugar de HAVING), crear otras dimensiones en función de ella y hacer pivotes, puedes llevar tus consultas y contenido de Explorar a la siguiente dimensión.

Visita la página de documentación Tablas derivadas para obtener más información sobre cómo crear y usar tablas derivadas, además de consideraciones y sugerencias para optimizar el rendimiento.