Les expressions de filtre 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ées). Ils sont également utilisés dans LookML pour les éléments qui utilisent un paramètre filter
.
Chaîne
Exemple | Description |
---|---|
FOO |
est précisément égal à "FOO" |
FOO,BAR |
est précisément égal à "FOO" ou "BAR" |
%FOO% |
contient "FOO", établit une correspondance avec "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 "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 (lorsqu'élément est utilisé dans une expression de filtre LookML, placez NULL entre guillemets, comme indiqué sur la page de documentation filters ) |
-FOO |
n'est pas égal à "FOO" (correspond à toutes les valeurs sauf à "FOO"), établit une correspondance avec "pizza", "trash", "fun", mais pas avec "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 "food" |
-%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 (lorsqu'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 n'est pas "FOOD" |
_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_
, préfixez-les avec le caractère d'échappement,^
. Par exemple:^"
,^%
et^_
- Pour inclure un
-
au début, échappez-le en tant que^-
. Cette condition est uniquement nécessaire si-
est le caractère de début. Elle est en revanche inutile si-
se trouve à l'intérieur de la chaîne. - Pour inclure
^
, échappez-le en tant que^^
. - Pour inclure une virgule dans un filtre de chaîne d'UI régulier, placez une barre oblique inversée,
\
, devant la virgule. Exemple :Santa Cruz\, CA
. - Pour inclure une virgule avec l'option matches (advanced) (Correspondances (avancées)) dans un filtre, placez le caractère d'échappement
^
devant la virgule. 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'expression3 days
inclut le jour partiel actuel et les deux jours précédents. L'expression3 days ago for 3 days
inclut les trois jours complets précédents et exclut le jour actuel, partiel. Pour en savoir plus, consultez la section Dates relatives.{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 AAAA-MM-JJ, 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 des données issues du jour actuel, 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 indiquez. L'expression before 2018-01-01 renverra des données de toutes les dates antérieures au 01/01/2018, mais pas pour les dates suivantes. |
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. L'expression 2018-05-18 12:00:00 to 2018-05-18 14:00:00 renverra donc des données comprises entre le "18/05/2018 à 12 h 00 " et le "18/05/2018 à 13 h 59 et 59 s ". |
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 le suit. L'expression Dimension Group Date matches (advanced) before Monday renvoie tous les jours avant le lundi le plus récent, mais pas le lundi le plus récent.Si vous spécifiez un jour de la semaine dans le champ Jour de la semaine du groupe de dimensions, tous les jours correspondant au jour de la semaine spécifié seront renvoyés. L'expression Dimension Group Day of Week matches (advanced) Monday renvoie donc tous les lundis. |
next {week, month, quarter, fiscal quarter, year, fiscal year} |
next week |
Le mot clé next est unique dans le sens où il requiert l'un des intervalles listés précédemment et qu'il 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 une logique AND:saisissez vos conditions une à une dans plusieurs filtres de date ou d'heure. Par exemple, vous pouvez placer
after 2014-01-01
dans un filtre Date de création, puisbefore 2 days ago
dans un filtre Heure de création. Cela signifie "après le 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 |
le premier trimestre de l'exercice 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: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 la date du jour est 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 "0 mois auparavant" (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 "0 trimestre auparavant" (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 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 prennent en charge à la fois les expressions en langage naturel (par exemple, 3 to 10
) et les opérateurs relationnels (par exemple, >20
). Looker prend en charge l'opérateur OR
pour exprimer plusieurs plages de filtre (par exemple, 3 to 10 OR 30 to 100
). L'opérateur AND
peut être utilisé pour exprimer des plages numériques avec des opérateurs relationnels (par exemple, >=3 AND <=10
) afin de spécifier 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, et n'est pas égal à 2 |
NOT >1, 2, <100 |
est inférieure ou égale à 1, n'est pas égale à 2 et est supérieure ou égale à 100 (Looker reconnaît qu'il s'agit d'une condition impossible et écrit à la place la requête 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 (lorsqu'il est utilisé 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é comme 5 <= x <= 90, où les bornes sont incluses |
(12, 20] |
interprété comme 12 < x <= 20, où 12 n'est pas inclus, mais 20 l'est |
[12, 20) |
interprété comme 12 ≤ x ≤ 20, où 12 est inclus, mais 20 ne l'est pas |
(500, inf) |
est interprété comme x > 500, où 500 n'est pas inclus et 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) |
La latitude et la longitude de l'emplacement ne sont pas nulles (lorsqu'élément 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 l'emplacement 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 prises en charge. 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, référencez l'attribut utilisateur avec 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 correspond à (avancé) au 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 modèle pour insérer des attributs utilisateur dans les filtres de tableau de bord et les filtres d'éléments de tableau de bord LookML.