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.