Uso
filter: filter_name { ... }
}
Hierarquia
filter |
Valor padrão
NenhumaAceita
Um identificador do Looker para nomear o filtroRegras especiais
Os nomes dos filtros não podem ser compartilhados com nenhum outro filtro, dimension ou measure dentro do mesmo view
|
Definição
O parâmetro filter
declara um campo somente de filtro e um nome para esse filtro. Um usuário pode adicionar campos somente de filtro ao filtrar, mas não ao conjunto de resultados. Esses campos somente de filtro são úteis por meio de filtros com modelo, um tópico avançado do LookML. Consulte também o exemplo Como usar filter
para filtrar por um campo oculto.
O nome do filtro precisa:
- Ser único em uma visualização
- Consiste em caracteres
a
az
(sem letras maiúsculas),0
a9
ou_
. - Começar com uma letra
Há muitos tipos de campo de filtro, conforme discutido na página de documentação Tipos de dimensões, filtros e parâmetros.
Examples
Veja alguns exemplos de como usar o parâmetro filter
.
Como criar um filtro especificado pelo usuário
Crie um filtro que permita ao usuário especificar order_region
:
filter: order_region {
type: string
}
Como definir uma tabela derivada dinâmica com um filtro baseado em modelo
Conforme mostrado na página de filtros modelo e parâmetros líquidos, defina uma tabela derivada para calcular o gasto total dos clientes em uma região especificada pelo usuário. Este exemplo usa o filter
criado no exemplo anterior como parte de um filtro de modelo. A entrada filter
é usada na cláusula WHERE
com variáveis líquidas:
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
}
}
Como usar o parâmetro sql
com filter
Também é possível usar o parâmetro sql
com filter
, que se aplica à cláusula SQL WHERE
sempre que o filtro tiver um valor. Isso permite uma cláusula WHERE
dinâmica, com base na entrada de filtro do usuário.
O exemplo a seguir cria um filtro que permite apenas os nomes de usuários que existem no conjunto de dados:
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
No exemplo acima, se a lista completa de nomes de usuário no conjunto de dados for "Zach", "Erin" e "Brett", o filtro vai resultar na seguinte cláusula WHERE
:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Consulte a seção Como usar filter
para filtrar por um campo oculto nesta página para ver um exemplo de como usar o parâmetro sql
com filter
.
Como usar filter
para definir uma tabela derivada dinâmica e um filtro definido pelo usuário
Usando o exemplo anterior que define uma tabela derivada com um valor de região dinâmica, é possível usar o parâmetro sql
com um filtro de modelo para criar dinamicamente uma cláusula WHERE
que se aplica à tabela derivada e à consulta principal gerada pelo 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 ;;
}
No exemplo acima, o usuário fornece entrada para o filtro order_region
, que por sua vez fornece o valor para a dimensão region
. A dimensão region
fornece o valor da cláusula WHERE
no SQL da tabela derivada e, por causa do parâmetro sql
na definição de filter
, o valor da cláusula WHERE
em uma consulta gerada pelo Looker.
Como usar filter
para filtrar por um campo oculto
É possível usar filter
para criar uma dimensão que os usuários podem filtrar e, ao mesmo tempo, impedir que os usuários selecionem a dimensão em uma consulta.
- Primeiro, oculte a dimensão em questão usando
hidden: yes
. Isso significa que a dimensão não estará disponível para os usuários selecionarem em um seletor de campo "Explorar".
dimension: field_to_hide {
type: string
hidden: yes
sql: ${TABLE}.field_to_hide ;;
}
- Agora, crie um campo
filter
para vincular à dimensãofield_to_hide
.
filter: filter_on_field_to_hide {
type: string
sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;;
}
Conforme discutido no exemplo Como usar o parâmetro sql
com filter
, o parâmetro sql
do campo filter
aplica o SQL diretamente à cláusula WHERE
da consulta. Nesse caso, a sql
usa a condição de filtro especificada no filtro filter_on_field_to_hide
e a aplica à dimensão ${field_to_hide}
.
Dessa forma, os usuários podem filtrar uma consulta por field_to_hide
com o filtro filter_on_field_to_hide
, enquanto a dimensão field_to_hide
permanece oculta.