sql_distinct_key

Utilizzo

view: view_name {
  measure: field_name {
    type: sum_distinct
    sql_distinct_key: ${my_field_name} ;;
  }
}
Gerarchia
sql_distinct_key
Tipi di campi possibili
Misura

Accetta
Un'espressione SQL

Definizione

Il parametro sql_distinct_key viene utilizzato con i tipi di misurazione che eseguono aggregazioni su valori non ripetuti, in particolare le misure di tipo average_distinct, median_distinct, percentile_distinct e sum_distinct. sql_distinct_key indica a Looker quale campo utilizzare come base per determinare i valori univoci, evitando così errori di calcolo in caso di fanout.

Ad esempio, type: sum_distinct somma i valori non ripetuti in un determinato campo, in base ai valori univoci definiti dal parametro sql_distinct_key.

Considera una tabella come questa:

ID elemento ordine ID ordine Spedizione dell'ordine
1 1 10,00
2 1 10,00
3 2 20,00
4 2 20,00
5 2 20,00

In questa situazione, sono presenti più righe per ogni ordine. Se hai aggiunto una misura di base di type: sum per la colonna order_shipping, ottieni un totale di 80,00, anche se la spedizione totale raccolta è in realtà 30,00.

 # Will NOT calculate the correct shipping amount
measure: total_shipping {
  type: sum
  sql: ${order_shipping} ;;
}

Per ottenere un risultato accurato, puoi spiegare a Looker come identificare ogni entità univoca (in questo caso, ogni ordine univoco) utilizzando il parametro sql_distinct_key. In questo modo verrà calcolato l'importo corretto di 30,00:

 # Will calculate the correct shipping amount
measure: total_shipping {
  type: sum_distinct
  sql_distinct_key: ${order_id} ;;
  sql: ${order_shipping} ;;
}

Ogni valore univoco di sql_distinct_key deve avere un solo valore corrispondente in sql. Questo esempio funziona perché ogni riga con un order_id pari a 1 ha lo stesso order_shipping pari a 10,00, ogni riga con un order_id pari a 2 ha lo stesso order_shipping pari a 20,00 e così via.