Utilisation
view: view_name {
filter: filter_name { ... }
}
|
Hiérarchie
filter |
Valeur par défaut
Aucun
Acceptation
Identifiant Looker pour nommer le filtre
Règles spéciales
Les noms de filtres ne peuvent pas être partagés avec d'autres filtres, dimension ou measure dans le même view.
|
Définition
Le paramètre filter déclare un champ de filtre uniquement et un nom pour ce filtre. Un utilisateur peut ajouter des champs de filtre uniquement en tant que filtres lors de l'exploration, mais il ne peut pas les ajouter à son ensemble de résultats. Ces champs de filtre uniquement sont utiles grâce aux filtres basés sur un modèle, qui sont un sujet LookML avancé. Vous pouvez également consulter l'exemple Utiliser filter pour filtrer par champ masqué.
Le nom du filtre doit :
- Être unique dans une vue donnée
- être composé des caractères
aàz(sans majuscules),0à9ou_. - Commencer par une lettre
Il existe de nombreux types de champs de filtre, comme indiqué sur la page de documentation Types de dimensions, de filtres et de paramètres.
Sous-paramètres pour filter
Consultez la page de référence Paramètres de champ pour obtenir la liste des sous-paramètres disponibles pour les champs LookML.
Exemples
Voici quelques exemples d'utilisation du paramètre filter.
Créer un filtre spécifié par l'utilisateur
Créez un filtre qui permet à l'utilisateur de spécifier le order_region :
filter: order_region {
type: string
}
Définir une table dérivée dynamique avec un filtre basé sur un modèle
Comme indiqué sur la page de documentation Filtres basés sur un modèle et paramètres Liquid, définissez une table dérivée pour calculer les dépenses à vie des clients dans une région spécifiée par l'utilisateur. Cet exemple utilise le filter créé dans l'exemple précédent dans le cadre d'un filtre basé sur un modèle. L'entrée filter est utilisée dans la clause WHERE avec des variables Liquid :
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
}
}
Utiliser le paramètre sql avec filter
Vous pouvez également utiliser le paramètre sql avec filter, qui s'applique à la clause SQL WHERE chaque fois que le filtre a une valeur. Cela permet d'obtenir une clause WHERE dynamique, basée sur les données saisies dans le filtre utilisateur.
L'exemple suivant crée un filtre qui n'autorise que les noms d'utilisateur existant dans l'ensemble de données :
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
Dans l'exemple précédent, si la liste complète des noms d'utilisateur dans l'ensemble de données est "Zach", "Erin" et "Brett", le filtre génère la clause WHERE suivante :
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Pour obtenir un exemple d'utilisation du paramètre sql avec filter, consultez la section Utiliser filter pour filtrer par un champ masqué sur cette page.
Utiliser filter pour définir une table dérivée dynamique et un filtre défini par l'utilisateur
En reprenant l'exemple précédent qui définit une table dérivée avec une valeur de région dynamique, vous pouvez utiliser le paramètre sql avec un filtre basé sur un modèle pour créer dynamiquement une clause WHERE qui s'applique à la fois à la table dérivée et à la requête principale générée par Looker :
view: customer_facts {
derived_table: {
sql:
SELECT
customer_id,
SUM(sale_price) AS lifetime_spend
FROM
order
WHERE
{% condition order_region %} order.region {% endcondition %}
GROUP BY 1
;;
}
filter: order_region {
type: string
sql: {% condition order_region %} ${region} {% endcondition %} ;;
}
dimension: region {
type: string
sql: ${TABLE}.region ;;
}
Dans l'exemple précédent, l'utilisateur fournit une entrée au filtre order_region, qui à son tour fournit la valeur à la dimension region. La dimension region fournit ensuite la valeur de la clause WHERE dans le code SQL de la table dérivée et, en raison du paramètre sql dans la définition filter, la valeur de la clause WHERE dans une requête générée par Looker.
Utiliser filter pour filtrer par champ masqué
Vous pouvez utiliser filter pour créer une dimension sur laquelle les utilisateurs peuvent filtrer les données, tout en les empêchant de la sélectionner dans une requête.
Commencez par masquer la dimension en question à l'aide de
hidden: yes. Cela signifie que les utilisateurs ne pourront pas sélectionner la dimension dans le sélecteur de champs Explorer.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }Créez maintenant un champ
filterpour l'associer à la dimensionfield_to_hide.filter: filter_on_field_to_hide { type: string sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;; }
Comme indiqué dans l'exemple Utiliser le paramètre sql avec filter, le paramètre sql du champ filter applique le code SQL directement à la clause WHERE de la requête. Dans ce cas, sql prend la condition de filtre spécifiée dans le filtre filter_on_field_to_hide et l'applique à la dimension ${field_to_hide}.
Ainsi, les utilisateurs peuvent filtrer une requête par field_to_hide avec le filtre filter_on_field_to_hide, tandis que la dimension field_to_hide reste masquée.