Uso
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
Hierarquia
sql_distinct_key |
Tipos de campo possíveis
MedirAceita
Uma expressão SQL |
Definição
O parâmetro sql_distinct_key
é usado com tipos de medida que executam agregações em valores não repetidos, especificamente nos tipos average_distinct
, median_distinct
, percentile_distinct
e sum_distinct
. sql_distinct_key
informa ao Looker qual campo usar como base para determinar valores exclusivos, 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 exclusivos definidos pelo parâmetro sql_distinct_key
.
Considere uma tabela como esta:
Código 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ê adicionar uma medida simples de type: sum
para a coluna order_shipping
, vai receber um total de 80,00, mesmo que o frete total coletado seja de realmente 30,00.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Para receber um resultado preciso, você pode explicar ao Looker como identificar cada entidade exclusiva (neste caso, cada pedido) usando o parâmetro sql_distinct_key
. Isso 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 exclusivo de sql_distinct_key
precisa ter apenas um valor correspondente em sql
. O exemplo acima funciona porque todas as linhas com order_id
igual a 1 têm o mesmo order_shipping
de 10, todas as linhas com order_id
de 2 têm o mesmo order_shipping
de 20, e assim por diante.