sql_distinct_key

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.