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.