set

Utilisation

view: view_name {
   set: set_name {
      fields: [field, field, ]
   }
}
Hiérarchie
set
Types de champs possibles
Dimension, groupe de dimensions, champ de filtrage, mesure

Acceptation
Liste de noms de champs entre crochets

Définition

Les ensembles peuvent être utiles lorsqu'ils sont référencés dans d'autres paramètres, comme fields (pour les jointures) et drill_fields (pour les champs), qui nécessitent des listes de champs.

Vous définissez chaque ensemble à l'aide du paramètre set. Un ensemble peut contenir un nombre illimité de dimensions, de mesures ou de champs de filtre de la vue actuelle, y compris les dimensions individuelles générées par un groupe de dimensions. Il peut également contenir des champs d'autres vues à l'aide de la syntaxe view_name.field_name.

Dans le paramètre set, ajoutez un paramètre fields, puis listez les champs, comme dans cet exemple :

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

Les ensembles peuvent également contenir d'autres ensembles. Pour différencier le nom d'un ensemble de celui d'une dimension ou d'une mesure, ajoutez un caractère *. Exemple :

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*
  ]
}

L'ensemble nommé my_third_set contiendra les champs suivants :

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

Enfin, vous pouvez exclure des champs à l'aide du caractère -. Exemple :

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
  ]
}

L'ensemble nommé my_fourth_set contiendra les champs suivants :

  • dimension_one
  • another_view.dimension_two

Exemples

Crée un ensemble appelé financial_data

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

Créez un ensemble appelé basic_customer_data dans la vue Clients qui fait également référence à la vue Customer Order Facts :

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

Difficultés courantes

Les champs d'une autre vue doivent être joints à l'exploration dans laquelle set est utilisé.

Si vous souhaitez référencer un champ dans set qui provient d'une autre vue, vous devez vous assurer que cette vue est jointe à l'exploration dans laquelle set est utilisé. Par exemple, ceci ne fonctionnera pas :

Fichier de modèle

explore: orders { ... }

Afficher le fichier

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

Ici, customers n'a pas été joint à orders. Par conséquent, il est impossible de référencer un champ de customers dans l'ensemble customer_info.

Ajouter des champs d'un dimension_group à un ensemble

Lorsque vous souhaitez ajouter des champs d'un dimension_group à un ensemble, vous devez ajouter chaque dimension de période individuellement. Prenons l'exemple de cette dimension_group :

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

Vous ne pouvez pas ajouter la dimension "Jour", "Semaine" et "Mois" à un ensemble comme celui-ci :

set: created_timeframes {
  fields: [created]
}

Vous devrez plutôt ajouter les périodes individuellement, comme ceci :

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