sql_distinct_key

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
Mesure

Acceptation
Expression SQL

Définition

Le paramètre sql_distinct_key est utilisé avec les types de mesures qui effectuent des agrégations sur des valeurs non répétées, en particulier les 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 expansion.

Par exemple, type: sum_distinct additionne les valeurs non répétées d'un champ donné, en fonction des valeurs uniques définies par le paramètre sql_distinct_key.

Prenons l'exemple d'un tableau comme celui-ci :

ID de l'article commandé ID de commande Expédition 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, chaque commande comporte plusieurs lignes. Si vous avez ajouté une mesure de base type: sum pour la colonne order_shipping, vous obtenez un total de 80,00, même si 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. Cette formule permettra de calculer 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 une valeur order_id de 1 a la même valeur order_shipping de 10,00, chaque ligne avec une valeur order_id de 2 a la même valeur order_shipping de 20,00, etc.