sql_distinct_schlüssel

Nutzung

view: view_name {
measure: Feldname {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
Hierarchie
sql_distinct_key
Mögliche Feldtypen
Messen

Akzeptiert
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.