Uso
view: view_name {
filter: filter_name { ... }
}
|
Hierarquia
filter |
Valor padrão
Nenhum
Aceita
Um identificador do Looker para nomear o filtro
Regras especiais
Os nomes de filtros não podem ser compartilhados com nenhum outro filtro, dimension ou measure na mesma view
|
Definição
O parâmetro filter declara um campo somente para filtros e um nome para esse filtro. Um usuário pode adicionar campos somente para filtros como filtros ao explorar, mas não pode adicioná-los ao conjunto de resultados. Esses campos somente para filtros são úteis usando filtros com modelos, que são um tópico avançado do LookML. Você também pode consultar o exemplo Usar filter para filtrar por um campo oculto.
O nome do filtro precisa:
- Ser exclusivo em qualquer visualização
- Consistir em caracteres
aaz(sem letras maiúsculas),0a9ou_ - Começar com uma letra
Há muitos tipos de campos de filtro, conforme discutido na página de documentação Tipos de dimensões, filtros e parâmetros.
Subparâmetros para filter
Consulte a página de referência de parâmetros de campo para uma lista de subparâmetros disponíveis para campos do LookML.
Exemplos
Confira alguns exemplos de uso do parâmetro filter.
Como criar um filtro especificado pelo usuário
Crie um filtro que permita ao usuário especificar a order_region:
filter: order_region {
type: string
}
Como definir uma tabela derivada dinâmica com um filtro com modelo
Conforme mostrado na página de documentação Filtros com modelos e parâmetros do Liquid, defina uma tabela derivada para calcular os gastos totais dos clientes em uma região especificada pelo usuário. Este exemplo usa o filter criado no exemplo anterior como parte de um filtro com modelo. A entrada filter é usada na cláusula WHERE com variáveis do 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
}
}
Como usar o parâmetro sql com filter
Você também pode usar o sql parâmetro com filter, que se aplica à cláusula WHERE do SQL sempre que o filtro tiver um valor. Isso permite uma cláusula WHERE dinâmica, com base na entrada do filtro do usuário.
O exemplo a seguir cria um filtro que permite apenas 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 anterior, se a lista completa de nomes de usuários no conjunto de dados for "Zach", "Erin" e "Brett", o filtro 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 Usar filter para filtrar por um campo oculto nesta página para conferir 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, você pode usar o sql parâmetro com um filtro com 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 anterior, o usuário fornece a 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, devido ao parâmetro sql na definição filter, o valor da cláusula WHERE em uma consulta gerada pelo Looker.
Como usar filter para filtrar por um campo oculto
Você pode usar filter para criar uma dimensão que os usuários podem filtrar, além de impedir que eles 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 campos do recurso Análise.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }Agora, crie um campo
filterpara 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 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, o 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.