Espressioni di filtro di Looker

Le espressioni di filtro sono un modo avanzato per filtrare le query di Looker e questa pagina descrive come scriverle. Nella sezione Esplora di Looker puoi utilizzarle aggiungendo un filtro e scegliendo l'opzione corrisponde (avanzata). Vengono utilizzati anche in LookML per gli elementi che utilizzano un parametro filter.

Quando utilizzi espressioni di filtro in LookML, devi inserire l'espressione tra virgolette (consulta la pagina della documentazione di filters per informazioni sull'uso appropriato). Questo è particolarmente importante per valori logici come NULL.

Quando utilizzi espressioni di filtro nella sezione Esplora di Looker, non è necessario inserire l'espressione tra virgolette.

Le espressioni di filtro non sono supportate con le concessioni di accesso. Per ulteriori informazioni, consulta la pagina della documentazione di access_grant.

Stringa

Le corrispondenze nei filtri di stringa dipendono dall'impostazione case_sensitive nel file del modello e dal fatto che il dialetto supporti la sensibilità alle maiuscole. Ad esempio, se case_sensitive è abilitato nel modello, l'espressione FOO% non corrisponderà alla parola "cibo". Se case_sensitive non è abilitato o se il tuo dialetto non supporta la sensibilità alle maiuscole, l'espressione FOO% corrisponderà alla parola "cibo".

Esempio Descrizione
FOO è uguale a "FOO",
FOO,BAR è uguale a "FOO" o "BAR", esattamente
%FOO% contiene "FOO", corrisponde a "buffoon" e "fast food"
FOO% inizia con "FOO", trova "foolish" e "food", ma non "buffoon" o "fast food"
%FOO termina con "FOO", corrisponde a "buffoo" e "fast foo", ma non a "buffoon" o "fast food"
F%OD inizia con la "F" e termina con "OD", corrisponde a "fast food"
EMPTY la stringa è vuota (contiene zero caratteri) o è nulla (nessun valore)
NULL è null (se viene utilizzato come parte di un'espressione di filtro LookML, inserisci NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
-FOO non è uguale a "FOO" (è qualsiasi valore tranne "FOO"), corrisponde a "pizza", "trash", "divertimento", ma non a "foo"
-FOO,-BAR non è uguale a "FOO" o "BAR", corrisponde a qualsiasi valore tranne "FOO" e "BAR"
-%FOO% non contiene "FOO", non corrisponde a "buffoon" o "fast food"
-FOO% non inizia con "FOO", non corrisponde a "follo" o "cibo"
-%FOO non termina con "FOO", non corrisponde a "buffoo" o "fast foo"
-EMPTY la stringa non è vuota (contiene almeno un carattere)
-NULL Il valore della colonna non sia null (se viene utilizzato come parte di un'espressione di filtro LookML, inserisci -NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
FOO%,BAR inizia con "FOO" o è "BAR" esattamente, corrisponde a "food" e corrisponde a "bar", ma non a "barfood"
FOO%,-FOOD inizia con "FOO" ma non è "FOOD"
_UF contiene un carattere singolo seguito da "UF", corrisponde a "buffoon"

Inclusione di caratteri speciali nei filtri stringa

Tieni presente queste regole per l'inclusione di caratteri speciali nei filtri stringa:

  • Per includere ", % o _, anteponi il carattere di escape ^. Ad esempio: ^", ^% e ^_
  • Per includere un valore - iniziale, esegui l'escape come ^-. Questa operazione è necessaria solo se - è il carattere iniziale; non è necessario eseguire l'escape di - se si trova all'interno della stringa.
  • Per includere ^, esegui l'escape come ^^.
  • Per includere una virgola in un normale filtro di stringa dell'interfaccia utente, fai precedere la virgola da un carattere barra rovesciata, \. Ad esempio: Santa Cruz\, CA.
  • Per includere una virgola con l'opzione corrisponde (avanzata) in un filtro, aggiungi il carattere di escape ^ alla virgola. Ad esempio: Santa Cruz^, CA.
  • Per includere una virgola in un'espressione di filtro in LookML, aggiungi il carattere di escape ^ come prefisso. Ad esempio:
  field: filtered_count {
      type: count
      filters: [city: "Santa Cruz^, CA"]
    }

In alcuni casi potresti anche voler eseguire l'escape o includere caratteri speciali nei filtri stringa quando utilizzi controlli personalizzati per i contenuti di Looker. Per ulteriori informazioni, consulta la sezione Aspetti da considerare durante il collegamento ai contenuti di Looker nella pagina del parametro Link.

Data e ora

I filtri delle date di Looker consentono di utilizzare frasi in inglese anziché le funzioni di data SQL.

Struttura di base dei filtri per data e ora

Per i seguenti esempi:

  • {n} è un numero intero.
  • {interval} è un incremento di tempo, ad esempio ore, giorni, settimane o mesi.

    La frase utilizzata determina se {interval} includerà periodi di tempo parziali o solo periodi di tempo completi. Ad esempio, l'espressione 3 days include il giorno parziale corrente e i due giorni precedenti. L'espressione 3 days ago for 3 days include i tre giorni completi precedenti ed esclude il giorno parziale corrente. Per ulteriori informazioni, consulta la sezione Date relative.

  • {time} può specificare il formato dell'ora AAAA-MM-GG HH:MM:SS o AAAA/MM/GG HH:MM:SS o la data nel formato AAAA-MM-GG o AAAA/MM/GG. Quando utilizzi il formato AAAA-MM-GG, assicurati di includere entrambe le cifre del mese e del giorno, ad esempio 2016-01. Il troncamento di un mese o di un giorno a una singola cifra viene interpretato come un offset, non una data. Ad esempio, 2016-1 viene interpretato come 2016 meno un anno o 2015.

Queste sono tutte le possibili combinazioni di filtri della data:

Combinazione Esempio Note
this {interval} this month Puoi utilizzare this week, this month, this quarter o this year. Tieni presente che this day non è supportato. Se vuoi ottenere i dati del giorno corrente, puoi utilizzare 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 non include il periodo di tempo specificato. L'espressione before 2018-01-01 restituirà dati relativi a tutte le date precedenti al 1° gennaio 2018, ma non dal 1° gennaio 2018.
after {time} after 2018-10-05 after include l'intervallo di tempo specificato. Pertanto, l'espressione after 2018-10-05 restituirà i dati dal 5/10/2018 e da tutte le date successive al 5/10/2018.
{time} to {time} 2018-05-18 12:00:00 to

2018-05-18 14:00:00
Il valore iniziale dell'ora è incluso. L'ultimo valore dell'ora non lo è. Quindi l'espressione 2018-05-18 12:00:00 to 2018-05-18 14:00:00 restituirà dati con l'ora da "2018-05-18 12:00:00" a "2018-05-18 13:59:59".
this {interval} to {interval} this year to second Viene utilizzato l'inizio di ogni intervallo. Ad esempio, l'espressione this year to second restituisce i dati dall'inizio dell'anno in cui viene eseguita la query fino al secondo in cui viene eseguita. this week to day restituisce i dati dall'inizio della settimana in cui viene eseguita la query fino all'inizio del giorno in cui viene eseguita.
{time} for {n} {interval} 2018-01-01 12:00:00 for 3 days
today today
yesterday yesterday
tomorrow tomorrow
{day of week} Monday Se specifichi un giorno della settimana con un campo Data gruppo di dimensioni, viene restituita la data più recente corrispondente al giorno della settimana specificato. Ad esempio, l'espressione Dimension Group Date matches (advanced) Monday restituisce il lunedì più recente.

In questo contesto, puoi anche utilizzare {day of week} con le parole chiave before e after. Ad esempio, l'espressione Dimension Group Date matches (advanced) after Monday restituisce il lunedì più recente e tutto ciò che segue il lunedì più recente. L'espressione Dimension Group Date matches (advanced) before Monday restituisce ogni giorno prima del lunedì più recente, ma non il lunedì più recente.

Se specifichi un giorno della settimana con un campo Giorno della settimana del gruppo di dimensioni, vengono restituiti tutti i giorni corrispondenti al giorno della settimana specificato. Di conseguenza, l'espressione Dimension Group Day of Week matches (advanced) Monday restituisce ogni lunedì.
next {week, month, quarter, fiscal quarter, year, fiscal year} next week La parola chiave next è univoca, in quanto richiede uno degli intervalli elencati in precedenza e non funziona con altri intervalli.
{n} {interval} from now 3 days from now
{n} {interval} from now for {n} {interval} 3 days from now for 2 weeks

I filtri per data possono essere combinati anche tra loro:

  • Per ottenere la logica OR: digita più condizioni nello stesso filtro, separate da virgole. Ad esempio, today, 7 days ago significa "oggi o 7 giorni fa".
  • Per ottenere la logica AND: digita le condizioni, una alla volta, in più filtri per data o ora. Ad esempio, potresti inserire after 2014-01-01 in un filtro Data creazione, quindi inserire before 2 days ago in un filtro Data creazione. ad esempio "Dal 1° gennaio 2014 in poi e prima di 2 giorni fa".

Date assolute

I filtri per le date assolute utilizzano i valori di data specifici per generare risultati della query. Sono utili quando si creano query per intervalli di date specifici.

Esempio Descrizione
2018/05/29 a volte il 29/05/2018
2018/05/10 for 3 days da 10/05/2018 00:00:00 a 12/05/2018 23:59:59
after 2018/05/10 10/05/2018 00:00:00 e dopo
before 2018/05/10 prima del 10/05/2018 00:00:00
2018/05 nell'intero mese del 05/2018
2018/05 for 2 months nell’arco dei mesi 2018/05 e 2018/06
2018/05/10 05:00 for 5 hours da 10/05/2018 05:00:00 a 10/05/2018 09:59:59
2018/05/10 for 5 months da 10/05/2018 00:00:00 a 09/10/2018 23:59:59
2018 tutto l'anno del 2018 (01/01/2018 dalle 00:00:00 alle 23:59:59 del 31/12/2018)
FY2018 tutto l'anno fiscale a partire dal 2018 (se gli sviluppatori di Looker hanno specificato che l'anno fiscale inizia ad aprile, va dall'1/04/2018 alle 00:00 fino al 31/03/2019 23:59)
FY2018-Q1 primo trimestre dell'anno fiscale a partire dal 2018 (se gli sviluppatori Looker hanno specificato che l'anno fiscale inizia ad aprile, il valore è compreso tra 01/04/2018 e 00:00:00 fino al 30/06/2018 23:59:59)

Date relative

I filtri della data relativa consentono di creare query con valori di data continuativi relativi alla data corrente. Sono utili durante la creazione di query che si aggiornano ogni volta che vengono eseguite.

Per tutti gli esempi riportati di seguito, supponiamo che oggi sia venerdì 18/05/2018 18:30:02. In Looker, le settimane iniziano di lunedì, a meno che non modifichi questa impostazione con week_start_day.

Secondi

Esempio Descrizione
1 second il secondo corrente (18/05/2018 18:30:02)
60 seconds 60 secondi fa per 60 secondi (18/05/2018 18:29:02 fino al 18/05/2018 18:30:01)
60 seconds ago for 1 second 60 secondi fa per 1 secondo (18/05/2018 18:29:02)

Minuti

Esempio Descrizione
1 minute minuto corrente (18/05/2018 dalle 18:30:00 alle 18:30:59)
60 minutes 60 minuti fa per 60 minuti (18/05/2018 17:31:00 fino al 18/05/2018 18:30:59)
60 minutes ago for 1 minute 60 minuti fa per 1 minuto (18/05/2018 17:30:00 fino al 18/05/2018 17:30:59)

Ore

Esempio Descrizione
1 hour l'ora corrente (dalle 18:00 del 18/05/2018 alle 18:59 del 18/05/2018)
24 hours la stessa ora del giorno di 24 ore fa per 24 ore (17/05/2018 dalle 19:00 alle 18:59 del 18/05/2018)
24 hours ago for 1 hour la stessa ora del giorno di 24 ore fa per 1 ora (17/05/2018 18:00 fino al 17/05/2018 18:59)

Giorni

Esempio Descrizione
today il giorno corrente (dalle 00:00 dal 18/05/2018 alle 23:59 del 18/05/2018)
2 days tutto ieri e oggi (17/05/2018 00:00 fino al 18/05/2018 23:59)
1 day ago solo ieri (2018/05/17 00:00 fino al 17/05/2018 23:59)
7 days ago for 7 days gli ultimi 7 giorni completi (2018/05/11 00:00 fino al 17/05/2018 23:59)
today for 7 days il giorno corrente, a partire da mezzanotte, per i 7 giorni futuri (18/05/2018 00:00 fino al 24/05/2018 23:59)
last 3 days 2 giorni fa fino alla fine del giorno corrente (16/05/2018 00:00 fino al 18/05/2018 23:59)
7 days from now 7 giorni nel futuro (25/05/2018 00:00 fino al 25/05/2018 23:59)

Settimane

Esempio Descrizione
1 week inizio della settimana corrente in futuro (14/05/2018 dalle 00:00 al 20/05/2018 23:59)
this week inizio della settimana corrente in futuro (14/05/2018 dalle 00:00 al 20/05/2018 23:59)
before this week in qualsiasi momento fino all'inizio di questa settimana (prima del 14/05/2018 00:00)
after this week in qualsiasi momento dopo il massimo di questa settimana (14/05/2018 00:00 e successive)
next week il lunedì successivo per la settimana successiva (dalle 00:00 del 21/05/2018 alle 23:59 del 27/05/2018)
2 weeks una settimana fa lunedì in futuro (07/05/2018 dalle 00:00 alle 23:59 del 20/05/2018)
last week sinonimo di "1 settimana fa"
1 week ago una settimana fa lunedì da 1 settimana (00:00/07/2018 fino al 13/05/2018 23:59)

Mesi

Esempio Descrizione
1 month il mese in corso (dalle 00:00 del 01/05/2018 alle 23:59 del 31/05/2018)
this month sinonimo di "0 mesi fa" (01/05/2018, 00:00 fino al 31/05/2018, 23:59)
2 months ultimi due mesi (01/04/2018 00:00 fino al 31/05/2018 23:59)
last month tutto il 04/2018
2 months ago tutto il 03/2018
before 2 months ago sempre prima del 01/03/2018
next month tutto il 6/2018
2 months from now tutto il 07/2018
6 months from now for 3 months dal 2018/11 al 01/2019

trimestri

Esempio Descrizione
1 quarter il trimestre corrente (01/04/2018 dalle 00:00 al 30/06/2018 alle 23:59)
this quarter sinonimo di "0 trimestri fa" (01/04/2018, dalle 00:00 al 30/06/2018, 23:59)
2 quarters ultimi due trimestri (1/01/2018 dalle 00:00 al 30/06/2018, 23:59)
last quarter tutto T1 (01/01/2018 dalle 00:00 al 31/03/2018 alle 23:59)
2 quarters ago tutto il quarto trimestre dell'anno scorso (01/010/2017 dalle 00:00 al 31/12/2017 alle 23:59)
before 2 quarters ago senza limiti di tempo prima del quarto trimestre dell'anno scorso
next quarter tutto il trimestre successivo (01/07/2018 dalle 00:00 al 30/09/2018 alle 23:59)
2018-07-01 for 1 quarter tutto il terzo trimestre (01/07/2018 dalle 00:00 al 30/09/2018 alle 23:59)
2018-Q4 tutto il 4° trimestre (01/10/2018 dalle 00:00 al 31/12/2018 alle 23:59)

Se i tuoi sviluppatori Looker hanno specificato di utilizzare un anno fiscale, puoi digitare fiscal in queste espressioni in modo da utilizzare un trimestre fiscale anziché un trimestre. Ad esempio, puoi usare last fiscal quarter.

Anni

Esempio Descrizione
1 year tutto l'anno in corso (01/01/2018 dalle 00:00 al 31/12/2018 alle 23:59)
this year tutto l'anno in corso (01/01/2018 dalle 00:00 al 31/12/2018 alle 23:59)
next year tutto l'anno successivo (01/01/2019 dalle 00:00 al 31/12/2019 alle 23:59)
2 years ultimi due anni (01/01/2017 dalle 00:00 al 31/12/2018 alle 23:59)
last year tutto il 2017
2 years ago tutto il 2016
before 2 years ago sempre prima del 01/01/2016 (non sono inclusi i giorni compresi tra 01/01/2016 e 18/05/2016)

Se i tuoi sviluppatori Looker hanno specificato di utilizzare un anno fiscale, puoi digitare fiscal in queste espressioni in modo da utilizzare un anno fiscale anziché un trimestre. Ad esempio, puoi usare last fiscal year.

Booleano

L'applicazione di filtri in base a valori di tipo vero o falso in Looker richiede di sapere con quale tipo di valore vero o falso stai interagendo.

Esempio Descrizione
yes o Yes restituisce il valore true

Sviluppatori Looker: per le dimensioni type: yesno utilizzano lettere minuscole, per i parametri filters (come quelli utilizzati in una misura o utilizzati in una always_filter) utilizzano lettere maiuscole
no o No restituisce il valore false

Sviluppatori Looker: per le dimensioni type: yesno utilizzano lettere minuscole, per i parametri filters (come quelli utilizzati in una misura o utilizzati in una always_filter) utilizzano lettere maiuscole
TRUE campo contiene true (per i campi che contengono valori di database booleani)
FALSE campo contiene false (per i campi che contengono valori di database booleani)

Numero

I filtri sui numeri supportano sia le espressioni in linguaggio naturale (ad esempio 3 to 10) sia gli operatori relazionali (ad esempio >20). Looker supporta l'operatore OR per esprimere più intervalli di filtro (ad esempio 3 to 10 OR 30 to 100). L'operatore AND può essere utilizzato per esprimere intervalli numerici con operatori relazionali (ad esempio >=3 AND <=10) per specificare un intervallo. I filtri sui numeri possono anche utilizzare la notazione dell'intervallo algebrico per filtrare i campi numerici.

La sintassi delle espressioni di filtro numeriche che utilizzano NOT potrebbe non essere intuitiva. Se la prima condizione di filtro contiene NOT e nessun'altra condizione di filtro contiene un valore NOT, tutte le condizioni del filtro verranno negate. Per saperne di più, consulta gli esempi riportati di seguito.

Esempio Descrizione
5 è esattamente 5
NOT 5

<>5

!=5
è qualsiasi valore ma esattamente 5
1, 3, 5, 7 è uno dei valori 1, 3, 5 o 7,
NOT 66, 99, 4 non è uno dei valori 66, 99 o 4,
>1 AND <100, NOT 2 è maggiore di 1 e minore di 100, non è 2
NOT >1, 2, <100 è minore o uguale a 1, non è 2 ed è maggiore o uguale a 100 (Looker riconosce che questa è una condizione impossibile e scriverà invece il valore SQL "IS NULL")
5, NOT 6, NOT 7 è 5, non è 6 o 7
5.5 to 10

>=5.5 AND <=10
è pari o superiore a 5,5 ma anche pari o inferiore a 10
NOT 3 to 80.44

<3 OR >80.44
è minore di 3 o maggiore di 80,44
1 to

>=1
è 1 o maggiore
to 10

<=10
è pari o inferiore a 10
>10 AND <=20 OR 90 è maggiore di 10 e minore o uguale a 20 oppure è 90 esattamente
>=50 AND <=100 OR >=500 AND <=1000 è compreso tra 50 e 100 inclusi o tra 500 e 1000 inclusi
NULL non contiene dati (se viene utilizzato come parte di un'espressione di filtro LookML, inserisci NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
NOT NULL contiene alcuni dati (quando viene utilizzato come parte di un'espressione di filtro LookML, inserisci NOT NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
(1, 7) interpretato come 1 < x < 7, dove gli endpoint non sono inclusi. Anche se questa notazione assomiglia a una coppia ordinata, in questo contesto si riferisce all'intervallo su cui stai lavorando.
[5, 90] interpretato come 5 <= x <= 90 in cui gli endpoint sono inclusi
(12, 20] interpretato come 12 < x <= 20, dove 12 non è incluso, ma 20 è incluso
[12, 20) interpretato come 12 <= x < 20, dove 12 è incluso, ma 20 non è incluso
(500, inf) interpretato come x > 500, dove 500 non è incluso e l'infinito è sempre espresso come "aperto" (non incluso). inf può essere omesso e (500, inf) può essere scritto come (500,)
(-inf, 10] interpretato come x <= 10, dove 10 è incluso e l'infinito è sempre espresso come "aperto" (non incluso). inf può essere omesso e (-inf, 10] può essere scritto come (,10]
[0,9],[20,29] i numeri da 0 a 9 inclusi o da 20 a 29 inclusi
[0,10],20 Da 0 a 10 inclusi o 20
NOT (3,12) interpretata come x < 3 e x > 12

Località

Le espressioni di filtro della località si basano sulla latitudine e sulla longitudine, ma possono accettare un certo linguaggio naturale per definire caselle e cerchi entro i quali limitare una ricerca.

Esempio Descrizione
36.97, -122.03 posizione esatta latitudine 36,97, longitudine 122,03
40 miles from 36.97, -122.03 posizione è entro 64 chilometri di latitudine 36.97, longitudine -122.03
inside box from 72.33, -173.14 to 14.39, -61.70 la posizione è all'interno di una scatola il cui angolo nord-ovest è a latitudine 72,33, longitudine -173,14, e il cui angolo sud-est è a latitudine 14,39, longitudine -61,70
NOT NULL (works the same as -NULL) la località ha una latitudine e una non null (quando viene utilizzata come parte di un'espressione di filtro LookML, inserisci NOT NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
-NULL (works the same as NOT NULL) la località ha una latitudine e una non null (quando viene utilizzata come parte di un'espressione di filtro LookML, inserisci -NULL tra virgolette, come mostrato nella pagina della documentazione di filters)
NULL la località ha una latitudine o una longitudine null oppure entrambe sono nulle (quando viene utilizzata come parte di un'espressione di filtro LookML, inserisci NULL tra virgolette, come mostrato nella pagina della documentazione di filters)

Unità di misura supportate

Per filtrare in un'area intorno a una determinata località, puoi utilizzare queste unità:

  • Metri
  • Piedi
  • Chilometri
  • Miglia

Le unità di misura singolari non sono supportate. Ad esempio, il filtro per un raggio di un miglio deve essere scritto within 1 miles of 36.97, -122.03.

Valori degli attributi utente

Per utilizzare il valore di un attributo utente in un'espressione di filtro, fai riferimento all'attributo utente con la variabile Liquid _user_attributes:

{{ _user_attributes['name_of_attribute'] }}

Ad esempio, supponi di dover applicare un prefisso sf_ al valore dell'attributo utente salesforce_username perché è così che vengono archiviati i valori nel tuo database. Per aggiungere il prefisso al valore dell'attributo utente, puoi aggiungere un filtro corrisponde (avanzato) nel campo pertinente e utilizzare la variabile Liquid _user_attributes nell'espressione di filtro, come indicato di seguito:


sf_{{_user_attributes['salesforce_username']}}

Puoi utilizzare lo stesso pattern per inserire attributi utente nei filtri della dashboard e nei filtri degli elementi della dashboard di LookML.