Expressions de filtre Looker

Les filtres d'expression sont un moyen avancé de filtrer les requêtes Looker. Cette page explique comment les écrire. Dans la section "Explorer" de Looker, vous pouvez les utiliser en ajoutant un filtre et en choisissant l'option correspondances (avancé). Ils sont également utilisés dans LookML pour les éléments qui acceptent un paramètre filter.

Chaîne

Exemple Description
FOO est précisément égal à "FOO"
FOO,BAR est égal à « FOO » ou « BAR », exactement
%FOO% contient "FOO", correspond à "buffoon" et "fast-food"
FOO% commence par "FOO", établit une correspondance avec "foolish" et "food", mais pas avec "buffoon" ou "fast food"
%FOO se termine par "FOO", établit une correspondance avec "buffoo" et "fast foo", mais pas avec "buffoon" ou "fast food"
F%OD commence par un "F" et se termine par "OD", établit une correspondance avec "fast food"
EMPTY la chaîne est vide (ne contient aucun caractère) ou est nulle (aucune valeur)
NULL La valeur est nulle (si elle est utilisée dans une expression de filtre LookML, placez NULL entre guillemets, comme indiqué sur la page de documentation filters).
-FOO n'est pas égal à « FOO » (est une valeur autre que "FOO"), établit une correspondance avec "pizza", "trash", "fun" mais pas "foo"
-FOO,-BAR n'est pas égal à "FOO" ou à "BAR", établit une correspondance avec toute valeur sauf "FOO" et "BAR"
-%FOO% ne contient pas « FOO », n'établit pas de correspondance avec « buffoon » ou "fast-food"
-FOO% ne commence pas par « FOO », n'établit pas de correspondance avec « foolish » ou "nourriture"
-%FOO ne se termine pas par "FOO", n'établit pas de correspondance avec "buffoo" ou "fast foo"
-EMPTY la chaîne n'est pas vide (contient au moins un caractère)
-NULL la valeur de la colonne n'est pas nulle (si elle est utilisée dans une expression de filtre LookML, placez -NULL entre guillemets, comme indiqué sur la page de documentation filters).
FOO%,BAR commence précisément par "FOO" ou "BAR", établit une correspondance avec "food" et avec "bar", mais pas avec "barfood"
FOO%,-FOOD commence par « FOO » mais pas de type "ALIMENTATION"
_UF contient un seul caractère suivi de "UF", établit une correspondance avec "buffoon"

Inclusion de caractères spéciaux dans les filtres de chaînes

Pour inclure des caractères spéciaux dans les filtres de chaînes, prenez note des règles suivantes :

  • Pour inclure ", % ou _, ajoutez le caractère d'échappement ^ en préfixe. Par exemple: ^", ^% et ^_
  • Pour inclure un - de début, échappez-le en tant que ^-. Cela n'est nécessaire que si - est le caractère de début. Vous n'avez pas besoin d'échapper - s'il se trouve à l'intérieur de la chaîne.
  • Pour inclure ^, ajoutez-lui un échappement ^^.
  • Pour inclure une virgule dans un filtre de chaîne d'interface utilisateur standard, ajoutez une barre oblique inverse (\) devant la virgule. Exemple : Santa Cruz\, CA.
  • Pour inclure une virgule avec l'option correspond à (avancé) dans un filtre, ajoutez le caractère d'échappement ^ en tant que préfixe. Par exemple : Santa Cruz^, CA.
  • Pour inclure une virgule dans une expression de filtre dans LookML, utilisez le caractère d'échappement ^ en préfixe. Par exemple:
  field: filtered_count {
      type: count
      filters: [city: "Santa Cruz^, CA"]
    }

Date and Time (Date et heure)

Le filtrage de date de Looker permet d'utiliser des expressions en anglais au lieu d'utiliser des fonctions de date SQL.

Structure de base des filtres de date et d'heure

Pour les exemples suivants :

  • {n} est un entier.
  • {interval} est un incrément de temps, par exemple des heures, des jours, des semaines ou des mois.

    La formulation que vous choisissez détermine si l'{interval} inclut des périodes partielles ou uniquement des périodes complètes. Par exemple, l'expression 3 days inclut le jour partiel en cours ainsi que les deux jours précédents. L'expression 3 days ago for 3 days inclut les trois jours complets précédents et exclut le jour partiel en cours. Consultez la section Dates relatives pour plus d'informations.

  • {time} peut spécifier une heure au format AAAA-MM-JJ HH:MM:SS ou AAAA/MM/JJ HH:MM:SS, ou une date au format AAAA-MM-JJ ou AAAA/MM/JJ. Lorsque vous utilisez la forme YYYY-MM-DD, veillez à inclure les deux chiffres du mois et du jour, par exemple 2016-01. La troncation d'un mois ou d'un jour en un seul chiffre est interprétée comme une soustraction, et non comme une date. Par exemple, la valeur 2016-1 est interprétée comme 2016 moins un an, ou 2015.

Voici toutes les combinaisons possibles des filtres de date :

Combinaison Exemple Remarques
this {interval} this month Vous pouvez utiliser this week, this month, this quarter ou this year. Notez que this day n'est pas accepté. Si vous souhaitez obtenir les données de la journée en cours, vous pouvez utiliser today.
{n} {interval} 3 days
{n} {interval} ago 3 days ago
{n} {interval} ago for {n} {interval} 3 months ago for 2 days
before {n} {interval} ago before 3 days ago
before {time} before 2018-01-01 12:00:00 before n'inclut pas l'heure que vous spécifiez. L'expression before 2018-01-01 renvoie des données correspondant à toutes les dates antérieures au 01/01/2018, mais pas celles du 01/01/2018.
after {time} after 2018-10-05 after inclut l'heure que vous spécifiez. Ainsi, l'expression after 2018-10-05 renverra des données du 05/10/2018 et de toutes les dates ultérieures au 05/10/2018.
{time} to {time} 2018-05-18 12:00:00 to

2018-05-18 14:00:00
La valeur de date/heure initiale est inclusive, mais la valeur de date/heure finale ne l'est pas. Ainsi, l'expression 2018-05-18 12:00:00 to 2018-05-18 14:00:00 renverra des données comportant l'heure "2018-05-18 12:00:00". à "2018-05-18 13:59:59".
this {interval} to {interval} this year to second Le début de chaque intervalle est utilisé. Par exemple, l'expression this year to second renvoie les données du début de l'année au cours de laquelle la requête est exécutée jusqu'au début de l'année suivante. this week to day renvoie les données du début de la semaine au cours de laquelle la requête est exécutée jusqu'au début du jour où la requête est exécutée.
{time} for {n} {interval} 2018-01-01 12:00:00 for 3 days
today today
yesterday yesterday
tomorrow tomorrow
{day of week} Monday Le fait d'indiquer un jour de la semaine dans le champ Date du groupe de dimensions renvoie la date la plus récente correspondant au jour de la semaine indiqué. Par exemple, l'expression Dimension Group Date matches (advanced) Monday renvoie le lundi le plus récent.

Vous pouvez également utiliser {day of week} avec les mots clés before et after dans ce contexte. Par exemple, l'expression Dimension Group Date matches (advanced) after Monday renvoie le lundi le plus récent et tout ce qui suit le lundi le plus récent. L'expression Dimension Group Date matches (advanced) before Monday renvoie une réponse tous les jours précédant le lundi le plus récent, mais pas le lundi le plus récent.

Le fait d'indiquer un jour de la semaine dans le champ Jour de la semaine du groupe de dimensions renvoie tous les jours correspondant au jour de la semaine spécifié. Ainsi, l'expression Dimension Group Day of Week matches (advanced) Monday est renvoyée tous les lundis.
next {week, month, quarter, fiscal quarter, year, fiscal year} next week Le mot clé next est unique dans la mesure où il requiert l'un des intervalles répertoriés précédemment et ne fonctionne pas avec d'autres intervalles.
{n} {interval} from now 3 days from now
{n} {interval} from now for {n} {interval} 3 days from now for 2 weeks

Les filtres de date peuvent également être combinés :

  • Pour obtenir une logique OR, saisissez plusieurs conditions dans le même filtre, séparées par des virgules. Par exemple, today, 7 days ago signifie "aujourd'hui ou il y a sept jours".
  • Pour obtenir la logique ET:saisissez vos conditions, une par une, dans plusieurs filtres de date ou d'heure. Par exemple, vous pouvez ajouter after 2014-01-01 dans un filtre Created Date (Date de création), puis saisir before 2 days ago dans un filtre Created Time (Date de création). Cela signifierait "à partir du 1er janvier 2014 et avant les deux jours précédents".

Dates absolues

Les filtres de date absolue utilisent les valeurs spécifiques de date en vue de générer des résultats de requête. Ils sont utiles lorsque vous créez des requêtes pour des plages de données spécifiques.

Exemple Description
2018/05/29 le 29/05/2018
2018/05/10 for 3 days du 10/05/2018 à 00:00:00 au 12/05/2018 à 23:59:59
after 2018/05/10 le 10/05/2018 à 00:00:00 et après
before 2018/05/10 avant le 10/05/2018 à 00:00:00
2018/05 au cours du mois complet 05/2018
2018/05 for 2 months au cours des mois complets 05/2018 et 06/2018
2018/05/10 05:00 for 5 hours du 10/05/2018 à 05:00:00 au 10/05/2018 à 09:59:59
2018/05/10 for 5 months du 10/05/2018 à 00:00:00 au 09/10/2018 à 23:59:59
2018 l'année 2018 complète (du 01/01/2018 à 00:00:00 au 31/12/2018 à 23:59:59)
FY2018 l'exercice complet commençant en 2018 (si vos développeurs Looker ont spécifié que votre exercice commence en avril, il s'agit du 01/04/2018 à 00:00 au 31/03/2019 à 23:59)
FY2018-Q1 premier trimestre de l'année fiscale commençant en 2018 (si vos développeurs Looker ont indiqué que votre année fiscale commence en avril, cette période est du 01/04/2018 à 00:00:00 au 30/06/2018 à 23:59:59)

Dates relatives

Les filtres de date relative vous permettent de créer des requêtes avec des valeurs de date glissantes relatives à la date actuelle. Ils sont utiles lorsque vous créez des requêtes qui se mettent à jour à chaque fois que vous exécutez la requête.

Pour tous les exemples suivants, supposons que nous sommes le vendredi 18/05/2018 à 18:30:02. Dans Looker, les semaines démarrent le lundi, sauf si vous modifiez ce paramètre avec week_start_day.

Secondes

Exemple Description
1 second la seconde actuelle (18/05/2018 à 18:30:02)
60 seconds 60 secondes auparavant pendant 60 secondes (du 18/05/2018 à 18:29:02 au 18/05/2018 à 18:30:01)
60 seconds ago for 1 second 60 secondes auparavant pendant 1 seconde (18/05/2018 à 18:29:02)

Minutes

Exemple Description
1 minute la minute actuelle (du 18/05/2018 à 18:30:00 au 18/05/2018 à 18:30:59)
60 minutes 60 minutes auparavant pendant 60 minutes (du 18/05/2018 à 17:31 au 18/05/2018 à 18:30:59)
60 minutes ago for 1 minute 60 minutes auparavant pendant 1 minute (du 18/05/2018 à 17:30:00 au 18/05/2018 à 17:30:59)

Heures

Exemple Description
1 hour l'heure actuelle (du 18/05/2018 à 18:00 au 18/05/2018 à 18:59)
24 hours la même heure de la journée que 24 heures auparavant, pendant 24 heures (du 17/05/2018 à 19:00 au 18/05/2018 à 18:59)
24 hours ago for 1 hour la même heure de la journée que 24 heures auparavant, pendant 1 heure (du 17/05/2018 à 18:00 au 17/05/2018 à 18:59)

Jours

Exemple Description
today le jour actuel (du 18/05/2018 à 00:00 au 18/05/2018 à 23:59)
2 days les journées d'hier et d'aujourd'hui complètes (du 17/05/2018 à 00:00 au 18/05/2018 à 23:59)
1 day ago seulement hier (du 17/05/2018 à 00:00 au 17/05/2018 à 23:59)
7 days ago for 7 days les 7 derniers jours complets (du 11/05/2018 à 00:00 au 17/05/2018 à 23:59)
today for 7 days le jour actuel, à partir de minuit, pendant les 7 jours à venir (du 18/05/2018 à 00:00 au 24/05/2018 à 23:59)
last 3 days 2 jours auparavant jusqu'à la fin du jour actuel (du 16/05/2018 à 00:00 au 18/05/2018 à 23:59)
7 days from now dans 7 jours (du 18/05/2018 à 00:00 au 25/05/2018 à 23:59)

Semaines

Exemple Description
1 week du début de la semaine actuelle à la fin de la semaine actuelle (du 14/05/2018 à 00:00 au 20/05/2018 à 23:59)
this week du début de la semaine actuelle à la fin de la semaine actuelle (du 14/05/2018 à 00:00 au 20/05/2018 à 23:59)
before this week n'importe quelle période avant le début de cette semaine (avant le 14/05/2018 à 00:00)
after this week n'importe quelle période après le début de cette semaine (à partir du 14/05/2018 à 00:00)
next week du lundi suivant à la semaine suivante (du 21/05/2018 à 00:00 au 27/05/2018 à 23:59)
2 weeks du lundi de la semaine précédente à la fin de la semaine actuelle (du 07/05/2018 à 00:00 au 20/05/2018 à 23:59)
last week synonyme de "1 semaine auparavant"
1 week ago du lundi de la semaine précédente à la fin de la semaine précédente (du 07/05/2018 à 00:00 au 13/05/2018 à 23:59)

Mois

Exemple Description
1 month le mois actuel (du 01/05/2018 à 00:00 au 31/05/2018 à 23:59)
this month synonyme de "il y a 0 mois" (du 01/05/2018 à 00:00 au 31/05/2018 à 23:59)
2 months les deux derniers mois (du 01/04/2018 à 00:00 au 31/05/2018 à 23:59)
last month tout le mois 04/2018
2 months ago tout le mois 03/2018
before 2 months ago n'importe quelle période avant le 01/03/2018
next month tout le mois 06/2018
2 months from now tout le mois 07/2018
6 months from now for 3 months du mois 11/2018 au mois 01/2019

Trimestres

Exemple Description
1 quarter le trimestre actuel (du 01/04/2018 à 00:00 au 30/06/2018 à 23:59)
this quarter synonyme de "il y a 0 trimestre" (du 01/04/2018 à 00:00 au 30/06/2018 à 23:59)
2 quarters les deux derniers trimestres (du 01/01/2018 à 00:00 au 30/06/2018 à 23:59)
last quarter le premier trimestre complet (du 01/01/2018 à 00:00 au 31/03/2018 à 23:59)
2 quarters ago le dernier trimestre complet de l'année dernière (du 01/10/2017 à 00:00 au 31/12/2017 à 23:59)
before 2 quarters ago n'importe quelle période avant le dernier trimestre de l'année dernière
next quarter le trimestre suivant complet (du 01/07/2018 à 00:00 au 30/09/2018 à 23:59)
2018-07-01 for 1 quarter le troisième trimestre complet (du 01/07/2018 à 00:00 au 30/09/2018 à 23:59)
2018-Q4 le dernier trimestre complet (du 01/10/2018 à 00:00 au 31/12/2018 à 23:59)

Années

Exemple Description
1 year l'année actuelle complète (du 01/01/2018 à 00:00 au 31/12/2018 à 23:59)
this year l'année actuelle complète (du 01/01/2018 à 00:00 au 31/12/2018 à 23:59)
next year l'année suivante complète (du 01/01/2019 à 00:00 au 31/12/2019 à 23:59)
2 years les deux dernières années (du 01/01/2017 à 00:00 au 31/12/2018 à 23:59)
last year l'année 2017 complète
2 years ago l'année 2016 complète
before 2 years ago n'importe quelle période avant le 01/01/2016 (ce qui ne comprend aucun jour entre le 01/01/2016 et le 18/05/2016)

Booléen

Pour filtrer des valeurs de type vrai ou faux dans Looker, vous devez savoir avec quel type de valeurs vrai ou faux vous interagissez.

Exemple Description
yes ou Yes champ vrai

Développeurs Looker : pour les dimensions type: yesno, utilisez des minuscules. Pour les paramètres filters (comme ceux utilisés dans une mesure ou dans un always_filter), utilisez des majuscules.
no ou No champ faux

Développeurs Looker: pour les dimensions type: yesno, utilisez des minuscules. Pour les paramètres filters (comme ceux utilisés dans une mesure ou utilisés dans un always_filter), utilisez des majuscules.
TRUE le champ contient « true » (pour les champs qui contiennent des valeurs de base de données booléennes)
FALSE le champ contient « false » (pour les champs qui contiennent des valeurs de base de données booléennes)

Nombre

Les filtres sur les nombres sont compatibles avec les expressions en langage naturel (par exemple, 3 to 10) et les opérateurs relationnels (par exemple, >20). Looker accepte l'opérateur OR pour exprimer plusieurs plages de filtres (par exemple, 3 to 10 OR 30 to 100). L'opérateur AND permet d'exprimer des plages numériques à l'aide d'opérateurs relationnels (par exemple, >=3 AND <=10) afin d'indiquer une plage. Les filtres sur les nombres peuvent également utiliser la notation d'intervalle algébrique pour filtrer des champs numériques.

Exemple Description
5 correspond précisément à 5
NOT 5

<>5

!=5
correspond à n'importe quelle valeur sauf à 5 précisément
1, 3, 5, 7 correspond précisément à l'une des valeurs 1, 3, 5 ou 7
NOT 66, 99, 4 ne correspond pas précisément à l'une des valeurs 66, 99 ou 4
>1 AND <100, NOT 2 est supérieur à 1 et inférieur à 100, n'est pas 2
NOT >1, 2, <100 est inférieur ou égal à 1, n'est pas 2, et supérieur ou égal à 100 (Looker reconnaît qu'il s'agit d'une condition impossible et écrira à la place la valeur SQL IS NULL)
5, NOT 6, NOT 7 correspond à 5 et non à 6 ou à 7
5.5 to 10

>=5.5 AND <=10
est supérieur ou égal à 5,5, mais est également inférieur ou égal à 10
NOT 3 to 80.44

<3 OR >80.44
est inférieur à 3 ou supérieur à 80,44
1 to

>=1
est supérieur ou égal à 1
to 10

<=10
est inférieur ou égal à 10
>10 AND <=20 OR 90 est supérieur à 10 et inférieur ou égal à 20, ou correspond précisément à 90
>=50 AND <=100 OR >=500 AND <=1000 est compris entre 50 et 100, inclusif, ou compris entre 500 et 1 000, inclusif
NULL ne contient aucune donnée (lorsqu'il est utilisé dans une expression de filtre LookML, placez NULL entre guillemets, comme indiqué sur la page de documentation filters)
NOT NULL contient des données (si vous l'utilisez dans une expression de filtre LookML, placez NOT NULL entre guillemets, comme indiqué sur la page de documentation filters) ;
(1, 7) interprétée comme : 1 < x < 7 où les points de terminaison ne sont pas inclus. Tandis que cette notation ressemble à une paire ordonnée, dans ce contexte, elle fait référence à l'intervalle sur lequel vous travaillez.
[5, 90] interprétée comme 5 <= x <= 90, où les points de terminaison sont inclus
(12, 20] interprétée comme : 12 < x <= 2012 n'est pas inclus, mais 20 l'est
[12, 20) interprétée comme suit : 12 <= x < 20, où 12 est inclus, mais pas 20
(500, inf) interprété comme x > 500500 n'est pas inclus et où l'infini est toujours exprimé comme étant "ouvert" (non inclus). inf peut être omis et (500, inf) peut être écrit sous la forme (500,).
(-inf, 10] est interprété comme x ≤ 10, où 10 est inclus et l'infini est toujours exprimé comme étant "ouvert" (non inclus). inf peut être omis et (-inf, 10] peut être écrit sous la forme (,10].
[0,9],[20,29] nombres compris entre 0 et 9 inclus ou entre 20 et 29 inclus
[0,10],20 de 0 à 10 inclus ou 20
NOT (3,12) interprété comme x < 3 et x > 12.

Emplacement

Les expressions de filtre de localisation sont basées sur la latitude et la longitude, mais peuvent accepter certains langages naturels pour définir des cases et des cercles dans lesquels limiter une recherche.

Exemple Description
36.97, -122.03 la localisation se trouve précisément à une latitude de 36,97 et à une longitude de 122,03
40 miles from 36.97, -122.03 la localisation se trouve dans un périmètre de 40 miles d'une latitude de 36,97 et d'une longitude de -122,03
inside box from 72.33, -173.14 to 14.39, -61.70 la localisation se trouve dans une case dont l'angle nord-ouest se trouve à une latitude de 72,33, à une longitude de -173,14, et dont l'angle sud-est se trouve à une latitude de 14,39 et à une longitude de -61,70
NOT NULL (works the same as -NULL) Le lieu a une latitude et une longitude non nulles (lorsqu'il est utilisé dans une expression de filtre LookML, placez NOT NULL entre guillemets, comme indiqué sur la page de documentation filters).
-NULL (works the same as NOT NULL) La latitude et la longitude de l'emplacement ne sont pas nulles (lorsqu'élément est utilisé dans une expression de filtre LookML, placez -NULL entre guillemets, comme indiqué sur la page de documentation filters)
NULL La latitude ou la longitude de la zone géographique est nulle, ou les deux sont nulles (lorsqu'élément est utilisé dans une expression de filtre LookML, placez NULL entre guillemets, comme indiqué sur la page de documentation filters)

Unités de mesure prises en charge

Pour filtrer dans une zone autour d'une localisation en particulier, vous pouvez utiliser les unités suivantes :

  • Mètres
  • Pieds
  • Kilomètres
  • Miles

Les unités de mesure singulières ne sont pas acceptées. Par exemple, le filtrage d'un rayon de 1 mile doit être rédigé within 1 miles of 36.97, -122.03.

Valeurs d'attributs utilisateur

Pour utiliser la valeur d'un attribut utilisateur dans une expression de filtre, faites référence à cet attribut à l'aide de la variable Liquid _user_attributes en utilisant la syntaxe requise par le dialecte de votre base de données:

{{ _user_attributes['name_of_attribute'] }}

Supposons par exemple que vous deviez appliquer un préfixe sf_ à la valeur de l'attribut utilisateur salesforce_username, car c'est ainsi que les valeurs sont stockées dans votre base de données. Pour ajouter le préfixe à la valeur de l'attribut utilisateur, vous pouvez ajouter un filtre correspondances (avancé) au niveau du champ concerné et utiliser la variable Liquid _user_attributes dans l'expression de filtre comme suit:


sf_{{_user_attributes['salesforce_username']}}

Vous pouvez utiliser le même schéma pour insérer des attributs utilisateur dans les filtres de tableau de bord et les filtres d'éléments de tableau de bord LookML.