Cette page fait référence au paramètre
fields
qui fait partie d'une jointure.
fields
peut également être utilisé dans le cadre d'une exploration, décrite sur la page de documentation du paramètrefields
(pour les explorations).
fields
peut également être utilisé dans le cadre d'un ensemble, décrit sur la page de documentation sur les paramètresset
.
Utilisation
join: view_name_2 {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
}
Hiérarchie
fields |
Valeur par défaut
Tous les champs de la vue jointeAcceptation
Crochets contenant une liste de champs ou d'ensembles séparés par une virguleRègles spéciales
|
Définition
fields
au niveau de la jointure vous permet de spécifier les champs d'une vue jointe qui sont transférés vers une exploration. Si vous n'utilisez pas les valeurs par défaut fields
de Looker, tous les champs de la vue doivent être ajoutés.
Une liste de champs peut être utilisée, par exemple [field_a, field_b]
.
Vous pouvez également référencer un ensemble de champs (créés par le paramètre set
), comme [set_a*]
. L'astérisque indique à Looker que vous référencez un nom d'ensemble plutôt qu'un nom de champ.
Examples
N'ajoutez que le champ intitulé name
de la vue customer
à la fonctionnalité order
Explorer:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Ajoutez les champs nommés name
, address
et age
de la vue customer
à la fonctionnalité Explorer de order
:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name, address, age]
}
}
Ajoutez l'ensemble de champs intitulé order_fields
depuis la vue customer
à la order
Explorer:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [order_fields* ]
}
}
Difficultés courantes
fields
ne peut référencer des champs qu'à partir de son propre join
fields
sera un enfant d'un join
, qui référence une vue. Toutes les dimensions ou mesures référencées dans fields
doivent faire partie de cette vue. Par exemple:
explore: order {
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
fields: [name]
}
}
Pour fonctionner correctement, une dimension ou une mesure appelée name
doit exister dans la vue customer
.
Bon à savoir
Utilisez fields: []
avec une liste vide pour exclure tous les champs
Vous pouvez exclure tous les champs d'une vue jointe en utilisant le paramètre fields
avec une liste vide dans votre jointure:
explore: order {
join: customer {
fields: []
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Dans cet exemple, aucun des champs de la vue customer
ne s'affiche dans order
Explorer.
Le seul moyen de supprimer des champs au niveau join
consiste à les exclure tous en même temps avec fields: []
. Vous ne pouvez pas utiliser le paramètre ALL_FIELDS*
défini pour exclure tous les champs au niveau de join
.
Toutefois, au niveau de explore
, vous pouvez utiliser le ALL_FIELDS*
défini pour exclure des éléments individuels, comme décrit dans la section Vous pouvez exclure des éléments individuels à l'aide de fields
avec explore
de cette page.
Vous pouvez exclure des éléments individuels en utilisant fields
avec explore
Lorsque fields
est imbriquée dans un paramètre join
, vous pouvez exclure tous les champs simultanément à l'aide de fields: []
ou inclure des champs spécifiques. En revanche, vous ne pouvez pas exclure des champs un par un. Par exemple, si vous possédez 100 champs et que vous souhaitez en exclure un seul, vous devez lister les 99 champs que vous souhaitez avoir sélectionnés.
Cependant, vous pouvez imbriquer fields
sous le paramètre explore
afin de profiter de l'ensemble ALL_FIELDS*
, puis d'exclure des champs. Exemple :
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Notez que nous avons pu référencer des champs de la vue jointe customer
dans le paramètre fields
du niveau Explorer en utilisant la syntaxe view_name.field_name
.
Différents types de paramètres fields
sont appliqués à différents moments
Cette page décrit fields
lorsqu'il est imbriqué sous un paramètre join
. Il existe également un paramètre fields
similaire qui est imbriqué sous explore
. Lorsqu'elles sont utilisées en même temps, elles sont appliquées dans un ordre spécifique, ce qui affecte le comportement qui en résulte:
Tout d'abord, tous les paramètres fields
sous join
sont appliqués. Vous créez ainsi un ensemble de champs que l'explorateur peut choisir. Considérez l'exemple suivant :
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Dans ce cas, les champs disponibles sont tous des champs orders
et name
du champ users
. Il s'agit du groupe de champs qui se trouverait dans l'ensemble ALL_FIELDS*
(décrit ci-dessus).
Maintenant, si nous ajoutons un paramètre fields
sous explore
, nous ajoutons une restriction à cet ensemble. Supposons que nous l'ayons fait:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
Dans ce cas :
price
deorders
s'affichera comme prévu, car il fait partie de l'ensembleALL_FIELDS*
que nous avons créé.address
deusers
ne s'afficheront pas, car il n'était pas inclus lorsqueusers
a été rejoint (seulename
l'a été).name
deusers
ne s'affichera pas non plus, car nous ne l'avons pas ajouté à l'exploration à la lignefields: [orders.price, users.address]
.