Dimensionnaliser une mesure dans Looker

En règle générale, en SQL (et par extension, dans Looker), vous ne pouvez pas regrouper une requête en fonction des résultats d'une fonction d'agrégation (représentée dans Looker sous la forme de mesures). Vous ne pouvez regrouper les données que par champs non agrégés (représentés dans Looker sous forme de dimensions). Si vous essayez d'agréger une mesure dans Looker, l'erreur suivante s'affiche:

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

Que faire si vous avez besoin de convertir une mesure (COUNT, SUM, AVG, MAX, etc.) en dimension afin de pouvoir la regrouper pour l'agréger (par exemple, une somme de COUNT ou une moyenne de SUM), la filtrer (dans la clause WHERE plutôt que dans une clause HAVING) ou l'pivoter dans une exploration ?

Utiliser des tables dérivées pour dimensionner une mesure

En interne, chez Looker, la solution est appelée dimensionnalisation d'une mesure. En effet, vous redéfinissez une mesure en tant que dimension. Pour ce faire, créez une table dérivée qui inclut la mesure que vous souhaitez dimensionner dans sa définition SQL.

Procédure

L'exemple suivant est basé sur un exemple d'ensemble de données d'e-commerce. L'objectif de cet exemple est de créer une mesure type: average basée sur une mesure Revenu total type: sum existante.

Les étapes suivantes expliquent comment générer une table dérivée basée sur SQL. Vous pouvez choisir de créer une table dérivée basée sur LookML, également appelée table dérivée native (NDT), plutôt que d'utiliser SQL.
  1. Commencez par configurer une requête d'exploration. Choisissez les champs appropriés, y compris la mesure que vous souhaitez dimensionner.

    Dans l'exemple d'utilisation, le tableau Données de l'exploration présente le revenu total regroupé par État des utilisateurs et ID des utilisateurs:

  2. Sélectionnez Ouvrir dans l'exécuteur SQL dans l'onglet SQL du tableau Données pour ouvrir la requête dans SQL Runner:

  3. Après avoir exécuté la requête dans SQL Runner (en cliquant sur le bouton Run [Exécuter]) et confirmé les résultats, sélectionnez l'option Add to Project (Ajouter au projet) dans le menu en forme de roue dentée de SQL Runner pour ouvrir le pop-up Add to Project (Ajouter au projet). À ce stade, vous devez supprimer toute clause de limite de lignes dans le code SQL de la table dérivée pour vous assurer que tous les résultats souhaités sont inclus dans la requête.

    Vous pouvez également sélectionner Obtenir le code LookML de la table dérivée dans le menu pour copier et coller manuellement le code LookML généré dans votre projet.
  4. Dans le pop-up Add to Project (Ajouter au projet), sélectionnez un nom de projet dans le menu déroulant Project (Projet), saisissez un nom pour votre fichier de vue Tableau dérivée, puis sélectionnez Add (Ajouter).
  5. Maintenant que la table dérivée se trouve dans un fichier de vue, vous pouvez créer une mesure qui agrège la mesure dimensionnalisée. Par exemple, vous pouvez désormais créer une mesure type: average pour la nouvelle dimension "Revenus totaux", 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. Vérifiez qu'une clé primaire est définie dans la table dérivée.
  7. Associez la nouvelle vue à l'exploration d'origine (ou créez une exploration) pour pouvoir créer des requêtes et du contenu avec les nouveaux champs.

Conclusion

Dimensionnaliser des mesures à l'aide de tables dérivées Looker ouvre de nouvelles fonctionnalités et vous permet d'obtenir des insights supplémentaires à partir de vos données. Vous pouvez regrouper par une mesure dimensionnalisée, la filtrer dans une clause WHERE (au lieu de HAVING), la pivoter et créer d'autres dimensions en fonction d'elle. Vous pouvez ainsi passer à la dimension suivante pour vos requêtes et votre contenu d'exploration.

Consultez la page de documentation Tables dérivées pour en savoir plus sur la création et l'utilisation de tables dérivées, ainsi que pour obtenir des conseils sur les considérations et l'optimisation des performances.