Utilisation
view: view_name {
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
|
Hiérarchie
sql_distinct_key |
Types de champs possibles
Mesurer
Acceptation
Expression SQL
|
Définition
Le paramètre sql_distinct_key est utilisé avec des types de mesures qui effectuent des agrégations sur des valeurs non répétées, en particulier des mesures de type average_distinct, median_distinct, percentile_distinct et sum_distinct. sql_distinct_key indique à Looker le champ à utiliser comme base pour déterminer les valeurs uniques, ce qui évite les erreurs de calcul en cas de fanout.
Par exemple, type: sum_distinct additionne les valeurs non répétées dans un champ donné, en fonction des valeurs uniques définies par le sql_distinct_key paramètre.
Prenons l'exemple d'un tableau comme celui-ci :
| ID de l'article de la commande | ID de la commande | Livraison de la commande |
|---|---|---|
| 1 | 1 | 10.00 |
| 2 | 1 | 10.00 |
| 3 | 2 | 20.00 |
| 4 | 2 | 20.00 |
| 5 | 2 | 20.00 |
Dans ce cas, plusieurs lignes correspondent à chaque commande. Si vous ajoutez une mesure de base de type: sum pour la colonne order_shipping, vous obtenez un total de 80.00, alors que le montant total des frais de port collectés est en réalité de 30.00.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Pour obtenir un résultat précis, vous pouvez expliquer à Looker comment identifier chaque entité unique (dans ce cas, chaque commande unique) à l'aide du paramètre sql_distinct_key. Cela calculera le montant correct de 30.00 :
# Will calculate the correct shipping amount
measure: total_shipping {
type: sum_distinct
sql_distinct_key: ${order_id} ;;
sql: ${order_shipping} ;;
}
Chaque valeur unique de sql_distinct_key ne doit avoir qu'une seule valeur correspondante dans sql. Cet exemple fonctionne, car chaque ligne avec un order_id de 1 a le même order_shipping de 10.00, chaque ligne avec un order_id de 2 a le même order_shipping de 20.00, etc.