Expressões de filtro do Looker

As expressões de filtro são uma maneira avançada de filtrar consultas do Looker, e esta página descreve como criá-las. Na seção "Explorar" do Looker, adicione um filtro e escolha a opção correspondências (avançado) para usá-las. Elas também são usadas no LookML em elementos que recebem um parâmetro filter.

Ao usar expressões de filtro no LookML, coloque a expressão entre aspas. Consulte o uso adequado na página de documentação de filters. Isso é especialmente importante para valores lógicos como NULL.

Ao usar expressões de filtro na seção "Explorar" do Looker, não é necessário colocar a expressão entre aspas.

As expressões de filtro não são compatíveis com concessões de acesso. Consulte a página de documentação do access_grant para mais informações.

String

As correspondências em filtros de string dependem da configuração case_sensitive no seu arquivo de modelo e da compatibilidade do seu dialeto com a diferenciação de maiúsculas e minúsculas. Por exemplo, se case_sensitive estiver ativado no modelo, a expressão FOO% não corresponderá à palavra "food". Se case_sensitive não estiver ativado ou se seu dialeto não for compatível com a diferenciação de maiúsculas e minúsculas, a expressão FOO% corresponderá à palavra "food".

Exemplo Descrição
FOO é igual a "FOO", exatamente
FOO,BAR é igual a "FOO" ou "BAR", exatamente
%FOO% contém "FOO", corresponde a "buffoon" e "fast food"
FOO% começa com "FOO", corresponde a "foolish" e "food", mas não a "buffoon" ou "fast food"
%FOO termina com "FOO", corresponde a "buffoo" e "fast foo", mas não a "buffoon" ou "fast food"
F%OD começa com "F" e termina com "OD", corresponde a "fast food"
EMPTY a string está vazia (tem zero caracteres) ou é nula (sem valor)
NULL O valor é nulo. Quando usado como parte de uma expressão de filtro do LookML, coloque NULL entre aspas, conforme mostrado na página de documentação do filters.
-FOO não é igual a "FOO" (é qualquer valor exceto "FOO"), corresponde a "pizza", "trash", "fun", mas não a "foo"
-FOO,-BAR não é igual a "FOO" ou "BAR", corresponde a qualquer valor, exceto "FOO" e "BAR"
-%FOO% não contém "FOO", não corresponde a "buffoon" ou "fast food"
-FOO% não começa com "FOO", não corresponde a "foolish" ou "food"
-%FOO não termina com "FOO", não corresponde a "buffoo" ou "fast foo"
-EMPTY a string não está vazia (tem pelo menos um caractere)
-NULL O valor da coluna não é nulo. Quando usado como parte de uma expressão de filtro do LookML, coloque -NULL entre aspas, conforme mostrado na página de documentação do filters.
FOO%,BAR começa com "FOO" ou é "BAR", corresponde exatamente a "food" e corresponde a "bar", mas não a "barfood"
FOO%,-FOOD começa com "FOOD", mas não é "FOOD"
_UF tiver um único caractere seguido por "UF", corresponde a "buffoon";

Inclusão de caracteres especiais em filtros de string

Observe estas regras para a inclusão de caracteres especiais em filtros de string:

  • Para incluir ", % ou _, adicione o caractere de escape ^ ao prefixo. Por exemplo: ^", ^% e ^_
  • Para incluir um - inicial, insira o escape como ^-. Isso só é necessário se o - for o caractere inicial. Não é necessário inserir o escape de - se ele estiver dentro da string.
  • Para incluir ^, insira o escape como ^^.
  • Para incluir uma vírgula em um filtro de string de UI normal, adicione um caractere de barra invertida antes da vírgula, \. Por exemplo, Santa Cruz\, CA.
  • Para incluir uma vírgula com a opção corresponde (avançado) em um filtro, adicione o caractere de escape ^ antes da vírgula. Por exemplo: Santa Cruz^, CA.
  • Para incluir uma vírgula em uma expressão de filtro no LookML, adicione o caractere de escape ^ como prefixo. Por exemplo:
  field: filtered_count {
      type: count
      filters: [city: "Santa Cruz^, CA"]
    }

Em alguns casos, também é possível incluir caracteres especiais em filtros de string ao usar detalhamentos personalizados no conteúdo do Looker. Para mais informações, consulte a seção O que considerar ao vincular ao conteúdo do Looker na página do parâmetro Link.

Data e hora

A filtragem de data do Looker permite o uso de frases em inglês em vez de funções de data SQL.

Estrutura básica dos filtros de data e hora

Confira estes exemplos:

  • {n} é um número inteiro.
  • {interval} é um incremento de tempo, como horas, dias, semanas ou meses.

    A frase usada determina se a {interval} vai incluir períodos parciais ou apenas completos. Por exemplo, a expressão 3 days inclui o dia parcial atual e os dois dias anteriores. A expressão 3 days ago for 3 days inclui os três dias completos anteriores e exclui o dia parcial atual. Consulte a seção Datas relativas para mais informações.

  • {time} pode especificar uma hora no formato AAAA-MM-DD HH:MM:SS ou AAAA/MM/DD HH:MM:SS, ou uma data no formato AAAA-MM-DD ou AAAA/MM/DD. Ao usar o formato AAAA-MM-DD, inclua os dois dígitos do mês e do dia, por exemplo, 2016-01. Truncar um mês ou dia para um único dígito é interpretado como uma diferença, não como data. Por exemplo, 2016-1 é interpretado como 2016 menos um ano, ou 2015.

Estas são todas as combinações possíveis de filtros de data:

Combinação Exemplo Observações
this {interval} this month Você pode usar this week, this month, this quarter ou this year. Observe que this day não é compatível. Para acessar dados do dia atual, use today.
{n} {interval} 3 days
{n} {interval} ago 3 days ago
{n} {interval} ago for {n} {interval} 3 months ago for 2 days
before {n} {interval} ago before 3 days ago
before {time} before 2018-01-01 12:00:00 before não inclui o horário especificado. A expressão before 2018-01-01 retornará dados de todas as datas anteriores a 01/01/2018, mas não retornará dados de 01/01/2018.
after {time} after 2018-10-05 after inclui o horário especificado. Portanto, a expressão after 2018-10-05 retornará dados de 05/10/2018 e todas as datas posteriores a 05/10/2018.
{time} to {time} 2018-05-18 12:00:00 to

2018-05-18 14:00:00
O valor do tempo inicial é inclusivo. O último valor de tempo não é. Portanto, a expressão 2018-05-18 12:00:00 to 2018-05-18 14:00:00 retornará dados com o horário "2018-05-18 12:00:00" a "2018-05-18 13:59:59".
this {interval} to {interval} this year to second O início de cada intervalo é usado. Por exemplo, a expressão this year to second retorna dados do início do ano em que a consulta é executada até o início do segundo em que ela é executada. this week to day retorna dados do início da semana em que a consulta é executada até o início do dia em que ela é executada.
{time} for {n} {interval} 2018-01-01 12:00:00 for 3 days
today today
yesterday yesterday
tomorrow tomorrow
{day of week} Monday Especificar um dia da semana com um campo Data do grupo de dimensões retorna a data mais recente que corresponde ao dia da semana especificado. Por exemplo, a expressão Dimension Group Date matches (advanced) Monday retorna a segunda-feira mais recente.

Também é possível usar {day of week} com as palavras-chave before e after nesse contexto. Por exemplo, a expressão Dimension Group Date matches (advanced) after Monday retorna a segunda-feira mais recente e tudo depois dela. A expressão Dimension Group Date matches (advanced) before Monday retorna todos os dias antes da segunda-feira mais recente, mas não a segunda.

Especificar um dia da semana com um campo Dia da semana do grupo de dimensões retorna todos os dias que correspondem ao dia da semana especificado. Portanto, a expressão Dimension Group Day of Week matches (advanced) Monday retorna todas as segundas-feiras.
next {week, month, quarter, fiscal quarter, year, fiscal year} next week A palavra-chave next é exclusiva, porque requer um dos intervalos listados anteriormente e não funcionará com outros intervalos.
{n} {interval} from now 3 days from now
{n} {interval} from now for {n} {interval} 3 days from now for 2 weeks

Os filtros de data também podem ser combinados:

  • Para receber a lógica "OR": digite várias condições no mesmo filtro, separadas por vírgulas. Por exemplo, today, 7 days ago significa "hoje ou há sete dias".
  • Para acessar a lógica AND:digite suas condições, uma por uma, em vários filtros de data ou hora. Por exemplo, é possível colocar after 2014-01-01 em um filtro Data de criação e, em seguida, colocar before 2 days ago em um filtro Horário de criação. Isso significa "1o de janeiro de 2014 em diante e antes de dois dias atrás".

Datas absolutas

Os filtros de data absoluta usam os valores de data específicos para gerar os resultados da consulta. Eles são úteis ao criar consultas para períodos específicos.

Exemplo Descrição
2018/05/29 em algum momento em 29/05/2018
2018/05/10 for 3 days de 10/05/2018 00:00:00 a 12/05/2018 23:59:59
after 2018/05/10 2018/05/10 00:00:00 e depois
before 2018/05/10 antes de 10/05/2018 00:00:00
2018/05 durante todo o mês de 05/2018
2018/05 for 2 months em todos os meses de 2018/05 e 2018/06
2018/05/10 05:00 for 5 hours de 10/05/2018 05:00:00 a 10/05/2018 09:59:59
2018/05/10 for 5 months de 10/05/2018 00:00:00 a 09/10/2018 23:59:59
2018 todo o ano de 2018 (2018/01/01 00:00:00 a 31/12/2018 23:59:59)
FY2018 ano fiscal completo a partir de 2018. Se os desenvolvedores do Looker especificarem que seu ano fiscal começa em abril, as 00:00 até 23:59 de 23:59 de 2018/04/01
FY2018-Q1 primeiro trimestre do ano fiscal que começa em 2018. Se os desenvolvedores do Looker especificarem que seu ano fiscal começa em abril, então o período vai de 2018/04/01 00:00:00 a 23:59:59 de 2018/06/30.

Datas relativas

Os filtros de data relativa permitem criar consultas com valores de data contínua relativos à data atual. Elas são úteis na criação de consultas que são atualizadas sempre que você executa a consulta.

Para todos os exemplos abaixo, suponha que hoje seja Friday, 2018/05/18 18:30:02. No Looker, as semanas começam na segunda-feira, a menos que você mude essa configuração com week_start_day.

Segundos

Exemplo Descrição
1 second o segundo atual (18/05/2018 18:30:02)
60 seconds 60 segundos atrás para 60 segundos (2018/05/18 18:29:02 a 18/05/2018 18:30:01)
60 seconds ago for 1 second 60 segundos atrás por 1 segundo (18/05/2018 18:29:02)

Minutos

Exemplo Descrição
1 minute o minuto atual (2018/05/18 18:30:00 a 18:30:59)
60 minutes 60 minutos atrás, por 60 minutos (2018/05/18 17:31:00 a 2018/05/18 18:30:59)
60 minutes ago for 1 minute 60 minutos atrás por 1 minuto (2018/05/18 17:30:00 a 2018/05/18 17:30:59)

Horas

Exemplo Descrição
1 hour a hora atual (18/05/2018 18:00 a 18/05/2018 18:59)
24 hours na mesma hora do dia 24 horas atrás durante 24 horas (17/05/2018, das 19h às 18h59 de 18/05/2018)
24 hours ago for 1 hour A mesma hora do dia 24 horas atrás durante 1 hora (17/05/2018, das 18h às 18h59 de 17/05/2018)

Dias

Exemplo Descrição
today o dia atual (18/05/2018 00:00 a 18/05/2018 23:59)
2 days de ontem e hoje (17/05/2018 00:00 até 23:59 de 18/05/2018)
1 day ago ontem (17/05/2018 00:00 até 17/05/2018 23:59)
7 days ago for 7 days Os últimos sete dias completos (11/05/2018 00:00 até 17/05/2018 23:59)
today for 7 days no dia atual, a partir da meia-noite, para os próximos 7 dias (18/05/2018, das 00h00 até 23/05/2018, 23h59)
last 3 days Dois dias atrás até o fim do dia atual (16/05/2018, das 00h00 às 23h59 de 18/05/2018)
7 days from now 7 dias no futuro (25/05/2018 00:00 até 25/05/2018 23:59)

Semanas

Exemplo Descrição
1 week parte superior da semana atual (2018/05/14 00:00 a 2018/05/20 23:59)
this week parte superior da semana atual (2018/05/14 00:00 a 2018/05/20 23:59)
before this week a qualquer momento até o início desta semana (antes de 14/05/2018 00:00)
after this week a qualquer momento após o início desta semana (14/05/2018 00:00 e mais tarde)
next week a segunda-feira seguinte, daqui para frente, uma semana (2018/05/21 00:00 a 27/05/2018 23:59)
2 weeks uma semana atrás, segunda-feira (2018/05/07 00:00 até 23/05/2018 23:59)
last week sinônimo para "1 semana atrás"
1 week ago uma semana atrás, segunda-feira daqui para frente 1 semana (2018/05/07 00:00 até 23:59/05/2018)

Meses

Exemplo Descrição
1 month O mês atual (01/05/2018 00:00 a 31/05/2018 23:59)
this month sinônimo de "0 months ago" (2018/05/01 00:00 a 2018/05/31 23:59)
2 months os últimos dois meses (01/04/2018 00:00 a 31/05/2018 23:59)
last month todos em 2018/04
2 months ago todos em 2018/03
before 2 months ago desde 01/03/2018
next month todos em 2018/06
2 months from now todos em 2018/07
6 months from now for 3 months 11/2018 a 01/2019

Trimestres

Exemplo Descrição
1 quarter No trimestre atual (01/04/2018 00:00 a 30/06/2018 23:59)
this quarter sinônimo de "0 trimestres atrás" (2018/04/01 00:00 a 2018/06/30 23:59)
2 quarters os dois últimos trimestres (01/01/2018 00:00 a 30/06/2018 23:59)
last quarter todo o primeiro trimestre (01/01/2018 00:00 a 31/03/2018 23:59)
2 quarters ago todo o quarto trimestre do ano passado (01/010/2017 00:00 até 31/12/2017 23:59)
before 2 quarters ago todo o período antes do quarto trimestre do ano passado
next quarter todo o trimestre seguinte (01/07/2018 00:00 a 30/09/2018 23:59)
2018-07-01 for 1 quarter todo o terceiro trimestre (01/07/2018 00:00 a 30/09/2018 23:59)
2018-Q4 todo o quarto trimestre (01/10/2018 00:00 a 31/12/2018 23:59)

Caso os desenvolvedores do Looker tenham especificado usando um ano fiscal, digite fiscal nessas expressões para usar um trimestre fiscal em vez de um trimestre. Por exemplo, last fiscal quarter.

Anos

Exemplo Descrição
1 year durante todo o ano atual (01/01/2018 00:00 a 31/12/2018 23:59)
this year durante todo o ano atual (01/01/2018 00:00 a 31/12/2018 23:59)
next year todo o ano seguinte (01/01/2019 00:00 a 31/12/2019 23:59)
2 years nos últimos dois anos (01/01/2017 00:00 a 31/12/2018 23:59)
last year todo de 2017
2 years ago todo o ano de 2016
before 2 years ago todo o período anterior a 01/01/2016 (não inclui nenhum dia entre 01/01/2016 e 18/05/2016)

Caso os desenvolvedores do Looker tenham especificado usando um ano fiscal, digite fiscal nessas expressões para usar um ano fiscal em vez de um trimestre. Por exemplo, last fiscal year.

Booleano

Ao filtrar valores de tipo verdadeiro ou falso no Looker, você precisa saber com que tipo de valor verdadeiro ou falso está interagindo.

Exemplo Descrição
yes ou Yes campo avalia como verdadeiro

Desenvolvedores do Looker: para dimensões type: yesno, use letras minúsculas. Para parâmetros filters (como os usados em uma medida ou usados em uma always_filter), use letras maiúsculas.
no ou No campo avalia como falso

Desenvolvedores do Looker: para dimensões type: yesno, use letras minúsculas. Para parâmetros filters (como os usados em uma medida ou usados em uma always_filter), use letras maiúsculas.
TRUE o campo contém true (para campos que contêm valores de banco de dados booleanos)
FALSE campo contém falso (para campos que contêm valores de banco de dados booleanos)

Número

Os filtros de números são compatíveis com expressões de linguagem natural (por exemplo, 3 to 10) e operadores relacionais (por exemplo, >20). O Looker oferece suporte ao operador OR para expressar vários intervalos de filtro (por exemplo, 3 to 10 OR 30 to 100). O operador AND pode ser usado para expressar intervalos numéricos com operadores relacionais (por exemplo, >=3 AND <=10) para especificar um intervalo. Os filtros de números também podem usar a notação de intervalo algébrico para filtrar campos numéricos.

A sintaxe das expressões de filtro numérico que usam NOT pode não ser intuitiva. Se a primeira condição de filtro tiver um NOT e nenhuma outra tiver um NOT, todas as condições de filtro serão negadas. Confira os exemplos abaixo para mais informações.

Exemplo Descrição
5 é exatamente 5
NOT 5

<>5

!=5
qualquer valor, exceto 5
1, 3, 5, 7 é um dos valores 1, 3, 5 ou 7, exatamente
NOT 66, 99, 4 não é um dos valores 66, 99 ou 4, exatamente
>1, NOT 2, <100 é maior que 1, não é 2 e é menor que 100
NOT >1, 2, <100 é menor ou igual a 1, não é 2 e é maior ou igual a 100 (o Looker reconhece que essa é uma condição impossível e, em vez disso, gravará o SQL `IS NULL`)
5, NOT 6, NOT 7 é 5, não é 6 ou 7
5.5 to 10

>=5.5 AND <=10
é 5,5 ou maior, mas também 10 ou menos
NOT 3 to 80.44

<3 OR >80.44
é menor que 3 ou maior que 80,44
1 to

>=1
é 1 ou maior
to 10

<=10
é 10 ou menos
>10 AND <=20 OR 90 é maior do que 10 e menor ou igual a 20, ou é exatamente 90
>=50 AND <=100 OR >=500 AND <=1000 estiver entre 50 e 100, inclusive, ou entre 500 e 1.000, inclusive
NULL não tiver dados (quando for usado como parte de uma expressão de filtro do LookML, coloque NULL entre aspas, conforme mostrado na página de documentação do filters);
NOT NULL tiver alguns dados (quando for usado como parte de uma expressão de filtro do LookML, coloque NOT NULL entre aspas, conforme mostrado na página de documentação do filters);
(1, 7) interpretado como 1 < x < 7, em que os endpoints não estão incluídos. Embora essa notação se assemelha a um par ordenado, neste contexto ela se refere ao intervalo em que você está trabalhando.
[5, 90] interpretado como 5 <= x <= 90, em que os endpoints são incluídos
(12, 20] interpretado como 12 < x <= 20, em que 12 não está incluído, mas 20 está incluído
[12, 20) interpretado como 12 <= x < 20, em que 12 está incluído, mas 20 não está incluído
(500, inf) interpretado como x > 500, no qual 500 não está incluído e infinito é sempre expresso como "aberto" (não incluído). inf pode ser omitido e (500, inf) pode ser escrito como (500,)
(-inf, 10] interpretado como x <= 10, em que 10 é incluído e infinito é sempre expresso como "aberto" (não incluído). inf pode ser omitido e (-inf, 10] pode ser escrito como (,10]
[0,9],[20,29] os números entre 0 e 9 (inclusive) ou 20 a 29
[0,10],20 0 a 10 inclusive ou 20
NOT (3,12) interpretado como x < 3 e x > 12

Local

As expressões de filtro de local têm como base a latitude e a longitude, mas podem aceitar linguagem natural para definir caixas e círculos para limitar uma pesquisa.

Exemplo Descrição
36.97, -122.03 o local é exatamente a latitude 36.97, longitude 122.03
40 miles from 36.97, -122.03 o local está dentro de 40 milhas da latitude 36,97, longitude -122,03
inside box from 72.33, -173.14 to 14.39, -61.70 local está dentro de uma caixa cujo canto noroeste está na latitude 72.33, longitude -173.14 e cujo canto sudeste está na latitude 14.39, longitude -61.70
NOT NULL (works the same as -NULL) o local tem uma latitude e uma longitude não nulas (quando for usado como parte de uma expressão de filtro do LookML, coloque NOT NULL entre aspas, conforme mostrado na página de documentação filters)
-NULL (works the same as NOT NULL) o local tem uma latitude e uma longitude não nulas (quando for usado como parte de uma expressão de filtro do LookML, coloque -NULL entre aspas, conforme mostrado na página de documentação filters)
NULL o local tem uma latitude ou uma longitude nula ou ambas são nulas (quando forem usadas como parte de uma expressão de filtro do LookML, coloque NULL entre aspas, como mostrado na página de documentação filters)

Unidades de medida compatíveis

Para filtrar em uma área ao redor de um determinado local, você pode usar estas unidades:

  • Metros
  • Pés
  • Quilômetros
  • Milhas

Unidades de medida individuais não são aceitas. Por exemplo, a filtragem de um raio de 1,6 km precisa ser escrita como within 1 miles of 36.97, -122.03.

Valores de atributo do usuário

Para usar o valor de um atributo do usuário em uma expressão de filtro, faça referência a esse atributo com a variável Liquid _user_attributes:

{{ _user_attributes['name_of_attribute'] }}

Por exemplo, suponha que você precise aplicar um prefixo sf_ ao valor do atributo de usuário salesforce_username porque essa é a forma como os valores são armazenados no seu banco de dados. Para adicionar o prefixo ao valor do atributo do usuário, adicione um filtro correspondências (avançado) no campo relevante e use a variável líquida _user_attributes na expressão de filtro da seguinte maneira:


sf_{{_user_attributes['salesforce_username']}}

É possível usar o mesmo padrão para inserir atributos de usuário nos filtros do painel do LookML e nos filtros de elementos do painel.