Nutzung
view: view_name {
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
|
Hierarchie
sql_distinct_key |
Mögliche Feldtypen
Analyse
Akzeptiert
Einen SQL-Ausdruck
|
Definition
Der sql_distinct_key Parameter wird mit Analysetypen verwendet, die Aggregationen für nicht wiederholte Werte ausführen, insbesondere Analysen vom Typ average_distinct, median_distinct, percentile_distinct und sum_distinct. sql_distinct_key tells Looker which field to use as a basis for determining unique values, thereby avoiding miscalculations in the case of a fanout.
Beispielsweise werden type: sum_distinct die nicht wiederholten Werte in einem bestimmten Feld basierend auf den eindeutigen Werten addiert, die durch den sql_distinct_key Parameter definiert werden.
Sehen Sie sich diese Tabelle an:
| Bestellpositions-ID | Bestell-ID | Versandkosten |
|---|---|---|
| 1 | 1 | 10,00 |
| 2 | 1 | 10,00 |
| 3 | 2 | 20,00 |
| 4 | 2 | 20,00 |
| 5 | 2 | 20,00 |
In diesem Fall gibt es mehrere Zeilen für jede Bestellung. Wenn Sie eine einfache Analyse vom Typ type: sum für die Spalte order_shipping hinzufügen, erhalten Sie eine Summe von 80,00, obwohl die tatsächlichen Versandkosten 30,00 betragen.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Um ein genaues Ergebnis zu erhalten, können Sie Looker mithilfe des Parameters sql_distinct_key erklären, wie jede eindeutige Entität (in diesem Fall jede eindeutige Bestellung) identifiziert werden soll. Dadurch wird der korrekte Betrag von 30,00 berechnet:
# Will calculate the correct shipping amount
measure: total_shipping {
type: sum_distinct
sql_distinct_key: ${order_id} ;;
sql: ${order_shipping} ;;
}
Jeder eindeutige Wert von sql_distinct_key darf nur einen entsprechenden Wert in sql haben. Dieses Beispiel funktioniert, weil jede Zeile mit einer order_id von 1 denselben Wert für order_shipping (10,00) hat, jede Zeile mit einer order_id von 2 denselben Wert für order_shipping (20,00) usw.