chave_distinta_sql

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
Medir

Aceita
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.