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.