set

Nutzung

view: view_name {
   set: set_name {
      fields: [field, field, ]
   }
}
Hierarchie
set
Mögliche Feldtypen
Dimension, Dimensionsgruppe, Filterfeld, Messwert

Akzeptiert
Eine Liste von Feldnamen in eckigen Klammern

Definition

Sets können nützlich sein, wenn sie in anderen Parametern wie fields (für Joins) und drill_fields (für Felder) referenziert werden, für die Listen von Feldern erforderlich sind.

Sie definieren jede Gruppe mit dem Parameter set. Ein Set kann beliebig viele Dimensionen, Messwerte oder Filterfelder aus der aktuellen Ansicht enthalten, einschließlich der einzelnen Dimensionen, die durch eine Dimensionsgruppe generiert werden. Sie kann auch Felder aus anderen Ansichten mit der Syntax view_name.field_name enthalten.

Fügen Sie innerhalb des Parameters set einen Parameter fields hinzu und listen Sie dann die Felder auf, wie in diesem Beispiel:

set: my_first_set {
  fields: [
    dimension_one,
    another_view.dimension_two,
    measure_one
  ]
}

Sets können auch andere Sets enthalten. Wenn Sie einen Set-Namen von dem Namen einer Dimension oder eines Messwerts unterscheiden möchten, fügen Sie das Zeichen * hinzu. Beispiel:

set: my_first_set {
  fields: [
    dimension_one,
    another_view.dimension_two,
    measure_one
  ]
}

set: my_second_set {
  fields: [
    dimension_three,
    measure_two
  ]
}

set: my_third_set {
  fields: [
    my_first_set*,
    my_second_set*
  ]
}

Das Set mit dem Namen my_third_set enthält die folgenden Felder:

  • dimension_one
  • another_view.dimension_two
  • measure_one
  • dimension_three
  • measure_two

Schließlich können Felder mit dem Zeichen - ausgeschlossen werden. Beispiel:

set: my_first_set {
  fields: [
    dimension_one,
    another_view.dimension_two,
    measure_one
  ]
}

set: my_second_set {
  fields: [
    dimension_three,
    measure_two
  ]
}

set: my_third_set {
  fields: [
    my_first_set*,
    my_second_set*
  ]
}

set: my_fourth_set {
  fields: [
    my_first_set*,
    -measure_one
  ]
}

Das Set mit dem Namen my_fourth_set enthält die folgenden Felder:

  • dimension_one
  • another_view.dimension_two

Beispiele

Erstelle ein Set mit dem Namen financial_data.

set: financial_data {
  fields: [
    subtotal,
    shipping,
    tax,
    total,
    cost,
    profit
  ]
}

Erstellen Sie in der Ansicht Kunden eine Menge mit dem Namen basic_customer_data, die auch auf die Ansicht Customer Order Facts verweist:

set: basic_customer_data {
  fields: [
    name,
    address,
    status,
    customer_order_facts.lifetime_orders,
    customer_order_facts.lifetime_revenue
  ]
}

Häufige Herausforderungen

Felder aus einer anderen Ansicht müssen mit dem Explore verknüpft werden, in dem set verwendet wird.

Wenn Sie in set auf ein Feld aus einer anderen Ansicht verweisen möchten, muss diese Ansicht mit dem Explore verknüpft sein, in dem set verwendet wird. Das funktioniert beispielsweise nicht:

Model File

explore: orders { ... }

Datei ansehen

view: orders {
  set: customer_info {
    fields: [customer.name]
  }
}

Hier wurde customers nicht mit orders verknüpft. Daher kann in der customer_info-Gruppe nicht auf ein Feld aus customers verwiesen werden.

Felder aus einer dimension_group einem Set hinzufügen

Wenn Sie Felder aus einem dimension_group in ein Set einfügen möchten, müssen Sie jede Zeitrahmendimension einzeln hinzufügen. Angenommen, Sie haben folgenden dimension_group:

dimension_group: created {
  type: time
  timeframes: [date, week, month]
  sql: ${TABLE}.created_at ;;
}

Sie können die Dimensionen „Tag“, „Woche“ und „Monat“ nicht zu einem solchen Set hinzufügen:

set: created_timeframes {
  fields: [created]
}

Stattdessen müssen Sie die Zeiträume einzeln hinzufügen, z. B. so:

set: created_timeframes {
  fields: [
    created_date,
    created_week,
    created_month
  ]
}