Utilizzo
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
Gerarchia
sql_distinct_key |
Tipi di campi possibili
MisuraAccetta
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.