Uso
view: view_name {
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
|
Hierarquia
sql_distinct_key |
Tipos de campo possíveis
Medida
Aceita
Uma expressão SQL
|
Definição
O parâmetro sql_distinct_key é usado com tipos de métricas que realizam agregações em valores não repetidos, especificamente métricas do tipo average_distinct, median_distinct, percentile_distinct e sum_distinct. sql_distinct_key informa ao Looker qual campo usar como base para determinar valores únicos, evitando erros de cálculo no caso de um fanout.
Por exemplo, type: sum_distinct soma os valores não repetidos em um determinado campo, com base nos valores únicos definidos pelo parâmetro sql_distinct_key.
Considere uma tabela como esta:
| ID do item do pedido | Código do pedido | Frete do pedido |
|---|---|---|
| 1 | 1 | 10.00 |
| 2 | 1 | 10.00 |
| 3 | 2 | 20,00 |
| 4 | 2 | 20,00 |
| 5 | 2 | 20,00 |
Nessa situação, há várias linhas para cada pedido. Se você adicionou uma medida básica de type: sum para a coluna order_shipping, o total será 80,00, mesmo que o frete total coletado seja 30,00.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Para ter um resultado preciso, explique ao Looker como identificar cada entidade exclusiva (neste caso, cada pedido exclusivo) usando o parâmetro sql_distinct_key. Isso vai calcular o valor correto 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 precisa ter apenas um valor correspondente em sql. Esse exemplo funciona porque todas as linhas com um order_id de 1 têm o mesmo order_shipping de 10,00, todas as linhas com um order_id de 2 têm o mesmo order_shipping de 20,00 e assim por diante.