sql_distinct_key

Uso

view: view_name {
  measure: field_name {
    type: sum_distinct
    sql_distinct_key: ${my_field_name} ;;
  }
}
Jerarquía
sql_distinct_key
Tipos de campos posibles
Medir

Acepta
Una expresión SQL

Definición

El parámetro sql_distinct_key se usa con los tipos de métricas que realizan agregaciones en valores no repetidos, específicamente las métricas de tipo average_distinct, median_distinct, percentile_distinct y sum_distinct. sql_distinct_key le indica a Looker qué campo usar como base para determinar los valores únicos, lo que evita errores de cálculo en el caso de un fanout.

Por ejemplo, type: sum_distinct suma los valores no repetidos en un campo determinado, según los valores únicos definidos por el parámetro sql_distinct_key.

Considera una tabla como la siguiente:

ID de artículo del pedido ID de pedido Envío del pedido
1 1 10.00
2 1 10.00
3 2 20.00
4 2 20.00
5 2 20.00

En esta situación, hay varias filas para cada pedido. Si agregaste una medida básica de type: sum para la columna order_shipping, obtendrás un total de 80.00, aunque el total del envío cobrado sea de 30.00.

 # Will NOT calculate the correct shipping amount
measure: total_shipping {
  type: sum
  sql: ${order_shipping} ;;
}

Para obtener un resultado preciso, puedes explicarle a Looker cómo debe identificar cada entidad única (en este caso, cada pedido único) con el parámetro sql_distinct_key. Esto calculará el importe correcto de 30.00:

 # Will calculate the correct shipping amount
measure: total_shipping {
  type: sum_distinct
  sql_distinct_key: ${order_id} ;;
  sql: ${order_shipping} ;;
}

Cada valor único de sql_distinct_key debe tener un solo valor correspondiente en sql. Este ejemplo funciona porque cada fila con un order_id de 1 tiene el mismo order_shipping de 10.00, cada fila con un order_id de 2 tiene el mismo order_shipping de 20.00, etcétera.