Uso
measure: field_name {
type: suma_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
Jerarquía
sql_distinct_key |
Tipos de campos posibles
MedirAcepta
Una expresión de SQL |
Definición
El parámetro sql_distinct_key
se usa con tipos de medición que realizan agregaciones en valores no repetidos, específicamente medidas 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 una 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 usar 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 este caso, hay varias filas para cada pedido. Si agregó una medida simple de type: sum
para la columna order_shipping
, obtendrá un total de 80.00, aunque el envío total que se recopiló realmente sea 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 orden único) mediante 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 solo un valor correspondiente en sql
. El ejemplo anterior funciona porque todas las filas con un order_id
de 1 tienen el mismo order_shipping
de 10.00, todas las filas con un order_id
de 2 tienen el mismo order_shipping
de 20.00, y así sucesivamente.