Nutzung
measure: Feldname {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
Hierarchie
sql_distinct_key |
Mögliche Feldtypen
MessenAkzeptiert
Ein SQL-Ausdruck |
Definition
Der Parameter sql_distinct_key
wird mit Messwerttypen verwendet, die Aggregationen für nicht wiederkehrende Werte ausführen, insbesondere Messwerte vom Typ average_distinct
, median_distinct
, percentile_distinct
und sum_distinct
. sql_distinct_key
teilt Looker mit, welches Feld als Basis für die Ermittlung eindeutiger Werte verwendet werden soll, um Fehlberechnungen bei einem Fanout zu vermeiden.
Beispielsweise addiert type: sum_distinct
die nicht wiederkehrenden Werte in einem bestimmten Feld auf Basis der eindeutigen Werte, die durch den Parameter sql_distinct_key
definiert werden.
Betrachten Sie eine Tabelle wie diese:
Auftragsartikel-ID | Bestell-ID | Versand der Bestellung |
---|---|---|
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 für jeden Auftrag mehrere Zeilen. Wenn Sie das einfache Maß „type: sum
“ für die Spalte „order_shipping
“ addieren, erhalten Sie den Gesamtwert von 80,00 $, obwohl der tatsächlich berechnete Versand insgesamt 30,00 beträgt.
# Will NOT calculate the correct shipping amount
measure: total_shipping {
type: sum
sql: ${order_shipping} ;;
}
Für ein genaues Ergebnis können Sie Looker erklären, wie jede einzelne Entität (in diesem Fall jede einzelne Reihenfolge) mit dem Parameter sql_distinct_key
identifiziert werden sollte. So wird der richtige Betrag von 30 $ 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
muss in sql
nur einen entsprechenden Wert haben. Das Beispiel oben funktioniert, weil jede Zeile mit einem order_id
von 1 denselben order_shipping
von 10,00 hat, jede Zeile mit einem order_id
von 2 den gleichen order_shipping
von 20,00 usw.