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 medidas que realizam agregações em valores não repetidos, especificamente medidas 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 exclusivos, evitando assim 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:

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ê adicionasse uma medida básica de type: sum para a coluna order_shipping, receberia um total de 80,00, mesmo que o frete total coletado seja de 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 ele deve identificar cada entidade exclusiva (nesse 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 exclusivo de sql_distinct_key precisa ter apenas um valor correspondente em sql. Este exemplo funciona porque cada linha com um order_id de 1 tem o mesmo order_shipping de 10,00, cada linha com um order_id de 2 tem o mesmo order_shipping de 20,00 e assim por diante.