sql_distinct_key

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.