Utilizzo
filtro: filter_name { ... }
}
Gerarchia
filter |
Valore predefinito
NessunaAccetta
Un identificatore di Looker per assegnare un nome al filtroRegole speciali
I nomi dei filtri non possono essere condivisi con nessun altro filtro, dimension o measure all'interno dello stesso view
|
Definizione
Il parametro filter
dichiara un campo solo filtro e un nome per il filtro. Un utente può aggiungere campi di solo filtro come filtri durante l'esplorazione, ma non può aggiungerli al set di risultati. Questi campi di solo filtro sono utili tramite i filtri basati su modelli, che sono un argomento LookML avanzato. Puoi anche fare riferimento all'esempio Utilizzo di filter
per filtrare in base a un campo nascosto.
Il nome del filtro deve:
- Devono essere univoci all'interno di una determinata vista
- Sono composti da caratteri da
a
az
(senza lettere maiuscole), da0
a9
o_
. - Inizia con una lettera
Esistono molti tipi di campi di filtro, come approfondito nella pagina della documentazione Dimensioni, filtri e tipi di parametri.
Esempi
Ecco alcuni esempi per l'utilizzo del parametro filter
.
Creazione di un filtro specificato dall'utente
Crea un filtro che consenta all'utente di specificare order_region
:
filter: order_region {
type: string
}
Definizione di una tabella derivata dinamica con un filtro basato su modello
Come illustrato nella pagina della documentazione Filtri basati su modelli e parametri Liquid, definisci una tabella derivata per calcolare la spesa complessiva dei clienti in una regione specificata dall'utente. In questo esempio viene utilizzato il filter
creato nell'esempio precedente come parte di un filtro basato su modello. L'input filter
viene utilizzato nella clausola WHERE
con le variabili 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
}
}
In base al parametro sql
con filter
Puoi anche utilizzare il parametro sql
con filter
, che si applica alla clausola SQL WHERE
ogni volta che il filtro ha un valore. In questo modo viene consentita una clausola WHERE
dinamica in base all'input del filtro dell'utente.
L'esempio seguente crea un filtro che consente solo i nomi utente esistenti nel set di dati:
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
Nell'esempio precedente, se l'elenco completo dei nomi utente nel set di dati è "Zach", "Erin" e "Brett", il filtro restituisce la seguente clausola WHERE
:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Consulta la sezione Utilizzo di filter
per filtrare in base a un campo nascosto in questa pagina per un esempio di come utilizzare il parametro sql
con filter
.
Utilizza filter
per definire una tabella derivata dinamica e un filtro definito dall'utente
Nell'esempio precedente, che definisce una tabella derivata con un valore di regione dinamico, puoi usare il parametro sql
con un filtro basato su modelli per creare dinamicamente una clausola WHERE
che si applichi sia alla tabella derivata sia alla query principale generata da 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 ;;
}
Nell'esempio riportato sopra, l'utente fornisce un input al filtro order_region
, che a sua volta fornisce il valore alla dimensione region
. La dimensione region
fornisce quindi il valore della clausola WHERE
nel codice SQL della tabella derivata e, a causa del parametro sql
nella definizione filter
, del valore della clausola WHERE
in una query generata da Looker.
Utilizzo di filter
per filtrare in base a un campo nascosto
Puoi utilizzare filter
per creare una dimensione in base alla quale gli utenti possono filtrare, impedendo al contempo agli utenti di selezionare la dimensione in una query.
- Per prima cosa, nascondi la dimensione in questione utilizzando
hidden: yes
. Ciò significa che la dimensione non sarà disponibile per la selezione da parte del selettore di campi Esplora.
dimension: field_to_hide {
type: string
hidden: yes
sql: ${TABLE}.field_to_hide ;;
}
- Ora crea un campo
filter
da collegare alla dimensionefield_to_hide
.
filter: filter_on_field_to_hide {
type: string
sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
}
Come illustrato nell'esempio del parametro sql
con filter
, il parametro sql
del campo filter
applica SQL direttamente alla clausola WHERE
della query. In questo caso, sql
prende la condizione di filtro specificata nel filtro filter_on_field_to_hide
e la applica alla dimensione ${field_to_hide}
.
In questo modo, gli utenti possono filtrare una query in base a field_to_hide
con il filtro filter_on_field_to_hide
, mentre la dimensione field_to_hide
rimane nascosta.