Utilizzo
view: view_name {
filter: filter_name { ... }
}
|
Gerarchia
filter |
Valore predefinito
Nessuno
Accetta
Un identificatore di Looker per assegnare un nome al filtro
Regole speciali
I nomi dei filtri non possono essere condivisi con altri filtri, dimension o measure all'interno dello stesso view
|
Definizione
Il parametro filter dichiara un campo solo con filtri e un nome per il filtro. Un utente può aggiungere campi solo con filtri come filtri durante l'esplorazione, ma non può aggiungerli al proprio insieme di risultati. Questi campi solo con filtri vengono resi utili utilizzando i filtri basati su modelli, che sono un argomento avanzato di LookML. Puoi anche fare riferimento all'esempio Utilizzo di filter per filtrare in base a un campo nascosto.
Il nome del filtro deve:
- Deve essere univoco all'interno di una determinata visualizzazione.
- Essere composto dai caratteri da
aaz(senza lettere maiuscole), da0a9o_ - Inizia con una lettera
Esistono molti tipi di campi filtro, come descritto più avanti nella pagina di documentazione Tipi di dimensioni, filtri e parametri.
Sottoparametri per filter
Consulta la pagina di riferimento Parametri dei campi per un elenco dei sottoparametri disponibili per i campi LookML.
Esempi
Ecco alcuni esempi di 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 un modello
Come mostrato nella pagina della documentazione Filtri basati su modelli e parametri Liquid, definisci una tabella derivata per calcolare la spesa totale dei clienti in una regione specificata dall'utente. Questo esempio utilizza filter creato nell'esempio precedente come parte di un filtro basato su un 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
}
}
Utilizzo del 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. Ciò consente una clausola WHERE dinamica, basata sull'input del filtro 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 genera la seguente clausola WHERE:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Consulta la sezione Utilizzare filter per filtrare in base a un campo nascosto in questa pagina per un esempio di come utilizzare il parametro sql con filter.
Utilizzo di filter per definire una tabella derivata dinamica e un filtro definito dall'utente
Utilizzando l'esempio precedente che definisce una tabella derivata con un valore di regione dinamico, puoi utilizzare il parametro sql con un filtro basato su modelli per creare dinamicamente una clausola WHERE che si applica 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 precedente, l'utente fornisce l'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 nell'SQL della tabella derivata e, a causa del parametro sql nella definizione filter, il 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 su cui gli utenti possono filtrare, impedendo al contempo agli utenti di selezionarla in una query.
Innanzitutto, nascondi la dimensione in questione utilizzando
hidden: yes. Ciò significa che la dimensione non sarà disponibile per gli utenti da selezionare da un selettore di campi di Explore.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }Ora crea un campo
filterda 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 Utilizzo 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.