chiave_sql_distinct

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 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 valori unici, evitando così errori di calcolo nel caso di un fanout.

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

Prendiamo in considerazione una tabella come la seguente:

ID articolo dell'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 questo caso, ci sono più righe per ogni ordine. Se hai aggiunto una misura semplice di type: sum per la colonna order_shipping, riceverai un totale di 80,00, anche se la spedizione totale riscossa è pari a 30,00.

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

Per ottenere un risultato preciso, puoi spiegare a Looker come deve identificare ogni entità unica (in questo caso, ogni ordine univoco) utilizzando il parametro sql_distinct_key. Questo valore calcolerà 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. L'esempio precedente funziona perché ogni riga con un order_id di 1 ha la stessa order_shipping di 10,00, ogni riga con order_id di 2 ha la stessa order_shipping di 20,00 e così via.