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 disponibili
Misura

Accetta
Un'espressione SQL

Definizione

Il parametro sql_distinct_key viene utilizzato con i tipi di misure 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 sql_distinct_key parametro.

Considera una tabella come questa:

ID articolo ordine ID ordine Spedizione 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 di 1 ha lo stesso order_shipping di 10.00, ogni riga con un order_id di 2 ha lo stesso order_shipping di 20.00 e così via.