Felder (für Joins)

Diese Seite bezieht sich auf den Parameter fields, der Teil eines Join ist.

fields kann auch als Teil eines explorativen Analysetools verwendet werden, wie auf der Seite mit der Parameterdokumentation für fields beschrieben.

fields kann auch als Teil eines Satzes verwendet werden, wie auf der Dokumentationsseite zum Parameter set beschrieben.

Nutzung

Explore: view_name_1 {
join: view_name_2 {
fields: [
field-or-set-specification,
field-or-set-specification,

...
]
}
}
Hierarchie
fields
Standardwert
Alle Felder in der verknüpften Ansicht

Akzeptiert
Eckige Klammern mit einer durch Kommas getrennten Liste von Feldern oder Gruppen

Sonderregeln
  • Satznamen enden immer mit einem Sternchen (*)
  • Auf Join-Ebene dürfen Felder und Gruppen nur eingeschlossen, aber nicht ausgeschlossen werden. Sie können jedoch alle Felder ausschließen. Dazu verwenden Sie den Parameter fields mit einer leeren Liste. Beispiel: fields: []

Definition

Mit fields auf Join-Ebene können Sie angeben, welche Felder aus einer verknüpften Ansicht in einen Tab „Entdecken“ aufgenommen werden. Wenn Sie fields nicht verwenden, fügt Looker standardmäßig alle Felder aus der Ansicht hinzu.

Eine Liste von Feldern wie [field_a, field_b] kann verwendet werden.

Sie können auch auf eine Reihe von Feldern verweisen, die mit dem Parameter set erstellt werden, z. B. [set_a*]. Das Sternchen teilt Looker mit, dass Sie auf einen Satznamen anstelle eines Feldnamens verweisen.

Beispiele

Fügen Sie das Feld name nur aus der Ansicht customer der order-Funktion „Erkunden“ hinzu:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Fügen Sie die Felder name, address und age aus der Ansicht customer der Funktion order Erkunden hinzu:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name, address, age]
  }
}

Fügen Sie der order-Ansicht die Gruppe von Feldern mit dem Namen order_fields aus der Ansicht customer hinzu:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [order_fields* ]
  }
}

Häufige Herausforderungen

fields kann nur Felder aus der eigenen join referenzieren

fields ist ein untergeordnetes Element von join, das auf eine Ansicht verweist. Alle Dimensionen oder Messwerte, auf die in fields verwiesen wird, müssen Teil dieser Ansicht sein. Beispiel:

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

Damit die Dimension „name“ richtig funktioniert, muss sie in der Ansicht „customer“ vorhanden sein.

Wichtige Informationen

Verwenden Sie fields: [] mit einer leeren Liste, um alle Felder auszuschließen

Sie können alle Felder aus einer verknüpften Ansicht ausschließen. Dazu verwenden Sie den Parameter fields mit einer leeren Liste in Ihrem Join. Beispiel:

explore: order {
  join: customer {
    fields: []
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

In diesem Beispiel werden keine Felder aus der Ansicht customer im Bereich „Erkunden“ von order angezeigt.

Wenn Sie Felder auf join-Ebene entfernen möchten, müssen Sie sie auf einmal mit fields: [] ausschließen. Sie können mit dem ALL_FIELDS* nicht festlegen, dass alle Felder auf join-Ebene ausgeschlossen werden.

Sie können jedoch auf exploreEbeneALL_FIELDS* einzelne Elemente ausschließen, wie im Abschnitt fields explore auf dieser Seite beschrieben.

Sie können einzelne Elemente ausschließen, indem Sie fields mit explore verwenden

Wenn fields unter einem join-Parameter verschachtelt ist, können Sie alle Felder gleichzeitig ausschließen. Dazu können Sie fields: [] oder bestimmte Felder einschließen. Es ist jedoch nicht möglich, einzelne Felder auszuschließen. Wenn Sie beispielsweise 100 Felder haben und nur eines davon ausschließen möchten, müssen Sie alle 99 Felder auflisten, die Sie wollten.

Sie können fields aber auch unter dem Parameter explore verschachteln, um die ALL_FIELDS*-Gruppe zu nutzen und dann Felder auszuschließen. Beispiel:

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Sie konnten Felder aus der verknüpften Ansicht customer im Parameter fields der Ebene „Erkunden“ mit der Syntax view_name.field_name referenzieren.

Verschiedene Arten von fields-Parametern werden zu unterschiedlichen Zeiten angewendet

Auf dieser Seite wird fields beschrieben, wenn sie in einem join-Parameter verschachtelt ist. Es gibt auch einen ähnlichen fields-Parameter, der unter explore verschachtelt ist. Wenn beide gleichzeitig verwendet werden, werden sie in einer bestimmten Reihenfolge angewendet, was das resultierende Verhalten beeinflusst:

Zuerst werden alle fields-Parameter unter join angewendet. Dadurch werden die Felder erstellt, aus denen die Option „Erkunden“ auswählen kann. Betrachten Sie dieses Beispiel:

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

In diesem Fall sind die verfügbaren Felder alles aus orders und name aus users. Dies ist die Gruppe von Feldern, die in den ALL_FIELDS*-Satz aufgenommen werden (siehe oben).

Wenn wir jetzt unter explore den Parameter fields hinzufügen, wird dieser Gruppe eine Einschränkung hinzugefügt. Beispiel:

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

In diesem Fall gilt:

  • price“ von orders wird wie erwartet angezeigt, da er im festgelegten ALL_FIELDS*-Satz enthalten ist.
  • address von users werden nicht angezeigt, da sie nicht eingeschlossen wurde, als users beigetreten war (nur name).
  • name von users werden auch nicht angezeigt, da es nicht in die Zeile „fields: [orders.price, users.address]“ der Zeile „Erkunden“ aufgenommen wurde.