Vous avez défini des mesures dans une vue, mais lorsque vous joignez cette vue à une autre vous ne voyez plus les mesures dans une exploration. Où sont passées les mesures ?
Causes possibles et solutions
Les causes sous-jacentes possibles peuvent dépendre de l'activation des agrégations symétriques. Les agrégations symétriques sont automatiquement activées, sauf si votre développeur les a désactivées avec le paramètre LookML symmetric_aggregates: no
ou si votre dialecte de base de données n'est pas compatible avec les agrégations symétriques.
Lorsque les agrégations symétriques sont activées
Les agrégations symétriques permettent aux mesures de tous types de transiter par les jointures. Toutefois, cela n'est possible si des clés primaires sont définies dans les vues de part et d'autre d'une jointure. Pour permettre aux mesures de s'appliquer aux jointures, vous devez définir une clé primaire dans toutes les vues impliquées.
Vous pouvez définir une clé primaire dans chaque vue en ajoutant primary_key: yes
à la définition du champ de clé primaire, comme suit :
dimension: id { type: number primary_key: yes }
Les clés primaires doivent avoir des valeurs complètement uniques, autres que NULL
, pour les types de mesure sum
et average
afin de réaliser des jointures. Si votre clé primaire
n'est pas unique,
un message d'erreur semblable à celui-ci peut s'afficher:
Non-Unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum.
De plus, si vous êtes dans une situation où il n'y a pas de champ unique unique dans votre vue,
vous pouvez créer une clé primaire composée
concaténer deux ou plusieurs champs en SQL pour créer une combinaison unique de valeurs. En savoir plus sur la résolution des problèmes
cette erreur dans le
Section "Clé primaire non unique" de la page des bonnes pratiques Error: Non-Unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum
.
Lorsque les agrégations symétriques ne sont pas activées
Certains dialectes ne sont pas compatibles avec les agrégations symétriques, ou votre développeur Looker a désactivé les agrégations symétriques avec le paramètre LookML symmetric_aggregates: no
. Lorsque les agrégations symétriques ne peuvent pas être utilisées, Looker ne transmet par défaut que des mesures de type count
(qui deviennent des mesures de nombre distinct) via une jointure. Cette approche nécessite également
, car la fonction COUNT_DISTINCT utilise la clé primaire. Cela permet d'éviter les résultats et les fanouts inexacts. Consultez le post destiné à la communauté sur
Les fonctions d'agrégation ne fonctionnent plus.
Il y a une liste qui affiche les dialectes compatibles avec les agrégations symétriques dans la dernière version de Looker.
Autres solutions à envisager
-
Utilisation de
fields
(pour les jointures) au niveau de la jointure.fields
vous permet de spécifier les champs (mesures, dimensions) d'une vue jointe qui apparaissent dans une exploration. -
Choisir le bon paramètre
relationship
. Le paramètrerelationship
indique à Looker s'il faut appliquer est agrégée lorsque la jointure est utilisée dans une requête SQL. Il est important de bien définir le type de relation pour permettre à Looker d'effectuer des calculs précis mesurer des valeurs.