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 quel 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 sono utili grazie ai 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:
- Essere univoco all'interno di una determinata visualizzazione
- Essere composto dai caratteri
aaz(senza maiuscole), da0a9o_ - Iniziare con una lettera
Esistono molti tipi di campi di filtro, come descritto nella pagina della documentazione Tipi di dimensioni, filtri e parametri.
Sottoparamentri per filter
Consulta la pagina di riferimento dei parametri dei campi per un elenco dei sottoparamentri 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 modelli
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 il filter creato nell'esempio precedente come parte di un filtro basato su modelli. L'filter input viene utilizzato nella WHERE clausola con 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 sql parametro con filter, che si applica alla clausola WHERE SQL ogni volta che il filtro ha un valore. In questo modo, la clausola WHERE è dinamica, in base all'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')
Per un esempio di come utilizzare il parametro sql con filter, consulta la sezione Utilizzo di filter per filtrare in base a un campo nascosto in questa pagina.
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, grazie al parametro sql nella definizione di 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 selezionare la dimensione 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 in un selettore campi Esplora.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }Ora crea un campo
filterper collegarlo alla dimensionefield_to_hide.filter: filter_on_field_to_hide { type: string sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;; }
Come descritto nell'esempio Utilizzo del parametro sql con filter, il parametro sql del campo filter applica direttamente l'SQL alla clausola WHERE della query. In questo caso, sql accetta 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.