As expressões de filtro são uma maneira avançada de filtrar consultas do Looker. É possível usar expressões de filtro das seguintes maneiras:
- Na seção "Analisar" do Looker, adicione um filtro, escolha a opção corresponde (avançado) e insira uma das expressões listadas nesta página para o tipo de filtro como o valor do filtro.
- Em elementos do LookML que usam um parâmetro
filter
.
Esta página lista os valores que podem ser inseridos em um filtro que usa a opção de condição corresponde (avançado) em uma análise detalhada do Looker. Dependendo do tipo de filtro e da sua entrada para o valor, o Looker pode converter a opção Corresponde (avançado) em uma condição de filtro mais adequada.
Informações importantes sobre expressões de filtro
Ao trabalhar com expressões de filtro do Looker, tenha em mente as seguintes observações:
- As expressões de filtro nesta página também são compatíveis com alguns tipos de filtro no Looker Studio quando o conector do Looker faz referência a uma Análise do Looker como fonte de dados e o filtro usa uma condição Corresponde (avançado). A condição Corresponde (avançado) funciona de maneira um pouco diferente no Looker Studio e em uma Análise do Looker. O Looker pode converter a condição corresponde (avançado) em uma condição mais adequada, com base na entrada do usuário. No entanto, o Looker Studio usa a opção Corresponde (avançado) como uma condição abrangente quando a entrada do usuário não é adequada para as outras condições de filtro compatíveis com o Looker Studio, mas não converte a condição.
- Nas análises detalhadas, os filtros básicos usam algumas frases que têm um significado diferente das expressões de filtro documentadas nesta página.
- Ao usar expressões de filtro na LookML, coloque a expressão entre aspas. Consulte a página de documentação
filters
para saber como usar corretamente. Isso é especialmente importante para valores lógicos, comoNULL
. Ao usar expressões de filtro na seção "Analisar" do Looker, não é necessário colocar a expressão entre aspas. - As expressões de filtro não são compatíveis com permissões de acesso. Consulte a página de documentação do
access_grant
para mais informações.
Expressões de filtro para cada tipo de filtro
Insira os exemplos a seguir como valores de filtro nas análises detalhadas do Looker que usam a opção de condição corresponde (avançado). As expressões de filtro são compatíveis com os seguintes tipos de filtro:
String
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 |
value é nulo (quando usado como parte de uma expressão de filtro da LookML, coloque NULL entre aspas, conforme mostrado na página de documentação 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" e 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 da LookML, coloque -NULL entre aspas, conforme mostrado na página de documentação filters ) |
FOO%,BAR |
começa com "FOO" ou é exatamente "BAR", corresponde a "food" e "bar", mas não a "barfood" |
FOO%,-FOOD |
começa com "FOO", mas não é "FOOD" |
_UF |
tem qualquer caractere único seguido por "UF", corresponde a "buffoon" |
Como incluir caracteres especiais em filtros de string
Confira estas regras para incluir caracteres especiais em filtros de string:
- Para incluir
"
,%
ou_
, adicione o prefixo com o caractere de escape,^
. Por exemplo:^"
,^%
e^_
- Para incluir um
-
inicial, insira um caractere de escape como^-
. Isso só é necessário se o-
for o primeiro caractere. Não é preciso usar escape se ele estiver dentro da string.-
- Para incluir
^
, insira caracteres de escape como^^
. - Para incluir uma vírgula em um filtro de string da UI regular, adicione uma 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, coloque o caractere de escape
^
antes da vírgula. Por exemplo:Santa Cruz^, CA
. - Para incluir uma vírgula em uma expressão de filtro na LookML, adicione o prefixo com o caractere de escape,
^
. Por exemplo:
field: filtered_count {
type: count
filters: [city: "Santa Cruz^, CA"]
}
Data e hora
A filtragem de datas do Looker permite usar frases em inglês em vez de funções de data do SQL.
Estrutura básica dos filtros de data e hora
Para os exemplos a seguir:
{n}
é um número inteiro.{interval}
é um incremento de tempo, como horas, dias, semanas ou meses.A fraseologia usada determina se o
{interval}
vai incluir períodos parciais ou apenas completos. Por exemplo, a expressão3 days
inclui o dia atual parcial e os dois dias anteriores. A expressão3 days ago for 3 days
inclui os três dias completos anteriores e exclui o dia atual, que está incompleto. Consulte a seção Datas relativas para mais informações.{time}
pode especificar um horário formatado como AAAA-MM-DD HH:MM:SS ou AAAA/MM/DD HH:MM:SS, ou uma data formatada como 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 um ajuste, não uma data. Por exemplo, 2016-1 é interpretado como 2016 menos um ano, ou seja, 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 . this day não é compatível. Se quiser receber 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 vai retornar dados de todas as datas anteriores a 2018-01-01, mas não vai retornar dados de 2018-01-01. |
after {time} |
after 2018-10-05 |
after inclui o horário especificado. Portanto, a expressão after 2018-10-05 vai retornar dados de 05/10/2018 e todas as datas posteriores. |
{time} to {time} |
2018-05-18 12:00:00 to 2018-05-18 14:00:00 |
O valor inicial é inclusivo, mas o último não é. Assim, a expressão 2018-05-18 12:00:00 to 2018-05-18 14:00:00 vai retornar dados com o período "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 o que vem 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 retorna a segunda-feira mais recente.Especificar um dia da semana com um campo Dia da semana do grupo de dimensão retorna todos os dias que correspondem ao dia da semana especificado. Assim, 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 exige um dos intervalos listados anteriormente e não funciona 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 usar 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á 7 dias". - Para usar a lógica AND:digite suas condições, uma por uma, em vários filtros de data ou hora. Por exemplo, você pode colocar
after 2014-01-01
em um filtro Data de criação ebefore 2 days ago
em um filtro Hora de criação. Isso significa "1º de janeiro de 2014 e depois, e antes de dois dias atrás".
Datas absolutas
Os filtros de data absoluta usam valores de data específicos para gerar resultados de consulta. Elas são úteis ao criar consultas para períodos específicos.
Exemplo | Descrição |
---|---|
2018/05/29 |
em algum momento de 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 |
10/05/2018 00:00:00 e depois |
before 2018/05/10 |
before 2018/05/10 00:00:00 |
2018/05 |
em todo o mês de 2018/05 |
2018/05 for 2 months |
nos meses inteiros 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 2018/12/31 23:59:59) |
FY2018 |
todo o ano fiscal a partir de 2018 (se os desenvolvedores do Looker especificaram que seu ano fiscal começa em abril, então é de 01/04/2018 00:00 a 31/03/2019 23:59) |
FY2018-Q1 |
primeiro trimestre do ano fiscal a partir de 2018 (se os desenvolvedores do Looker especificaram que o ano fiscal começa em abril, o período é de 2018/04/01 00:00:00 a 2018/06/30 23:59:59) |
Datas relativas
Com os filtros de data relativa, é possível criar consultas com valores de data móveis em relação à data atual. Elas são úteis ao criar consultas que são atualizadas toda vez que você as executa.
Em todos os exemplos a seguir, considere que hoje é sexta-feira, 18/05/2018, 18h30min02s. 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 (2018/05/18 18:30:02) |
60 seconds |
60 segundos atrás por 60 segundos (18/05/2018 18:29:02 até 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 (18/05/2018 17:31:00 a 18/05/2018 18:30:59) |
60 minutes ago for 1 minute |
60 minutos atrás por 1 minuto (18/05/2018 17:30:00 até 18/05/2018 17:30:59) |
Horas
Exemplo | Descrição |
---|---|
1 hour |
a hora atual (18/05/2018 18h00 até 18/05/2018 18h59) |
24 hours |
a mesma hora do dia que foi há 24 horas por 24 horas (17/05/2018 19:00 até 18/05/2018 18:59) |
24 hours ago for 1 hour |
a mesma hora do dia que foi há 24 horas por 1 hora (17/05/2018 18:00 até 17/05/2018 18:59) |
Dias
Exemplo | Descrição |
---|---|
today |
o dia atual (18/05/2018 00:00 até 18/05/2018 23:59) |
2 days |
todo o dia de ontem e hoje (17/05/2018 00:00 até 18/05/2018 23:59) |
1 day ago |
ontem (2018/05/17 00:00 até 2018/05/17 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 |
o dia atual, começando à meia-noite, por sete dias no futuro (2018/05/18 00:00 até 2018/05/24 23:59) |
last 3 days |
De dois dias atrás até o fim do dia atual (16/05/2018 00:00 até 18/05/2018 23:59) |
7 days from now |
7 dias no futuro (18/05/2018 00:00 até 25/05/2018 23:59) |
Semanas
Exemplo | Descrição |
---|---|
1 week |
do início da semana atual em diante (14/05/2018 00:00 até 20/05/2018 23:59) |
this week |
do início da semana atual em diante (14/05/2018 00:00 até 20/05/2018 23:59) |
before this week |
a qualquer momento até o início desta semana (antes de 14/05/2018 às 00:00) |
after this week |
a qualquer momento depois do início desta semana (14/05/2018 às 00:00 e depois) |
next week |
a segunda-feira seguinte, com duração de uma semana (21/05/2018 00:00 a 27/05/2018 23:59) |
2 weeks |
de segunda-feira da semana passada em diante (07/05/2018 00:00 a 20/05/2018 23:59) |
last week |
sinônimo de "há uma semana" |
1 week ago |
de segunda-feira da semana passada até a próxima semana (07/05/2018 00:00 a 13/05/2018 23:59) |
Meses
Exemplo | Descrição |
---|---|
1 month |
o mês atual (2018/05/01 00:00 até 2018/05/31 23:59) |
this month |
Sinônimo de "há 0 meses" (01/05/2018 00:00 a 31/05/2018 23:59) |
2 months |
os últimos dois meses (01/04/2018 00:00 a 31/05/2018 23:59) |
last month |
todo o período de 2018/04 |
2 months ago |
todo o período de 2018/03 |
before 2 months ago |
todo o período antes de 01/03/2018 |
next month |
todo o período de 2018/06 |
2 months from now |
todo o período de 2018/07 |
6 months from now for 3 months |
2018/11 a 2019/01 |
Trimestres
Exemplo | Descrição |
---|---|
1 quarter |
o trimestre atual (01/04/2018 00:00 a 30/06/2018 23:59) |
this quarter |
sinônimo de "há 0 trimestre" (01/04/2018 00:00 a 30/06/2018 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/01/2017 00:00 a 31/12/2017 23:59) |
before 2 quarters ago |
todo o período antes do 4º trimestre do ano passado |
next quarter |
todo o trimestre a seguir (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 (2018/10/01 00:00 a 2018/12/31 23:59) |
Anos
Exemplo | Descrição |
---|---|
1 year |
todo o ano atual (01/01/2018 00:00 a 31/12/2018 23:59) |
this year |
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 |
os últimos dois anos (01/01/2017 00:00 a 31/12/2018 23:59) |
last year |
todo o ano de 2017 |
2 years ago |
todo o ano de 2016 |
before 2 years ago |
todo o período antes de 01/01/2016 (não inclui nenhum dia entre 01/01/2016 e 18/05/2016) |
Booleano
Para filtrar valores do tipo verdadeiro ou falso no Looker, é necessário saber com que tipo de valor você está interagindo.
Exemplo | Descrição |
---|---|
yes ou Yes |
o campo é avaliado 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 um always_filter ), use letras maiúsculas. |
no ou No |
o campo é avaliado como "false"
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 um always_filter ), use letras maiúsculas. |
TRUE |
o campo contém "true" (para campos com valores booleanos do banco de dados) |
FALSE |
o campo contém "false" (para campos com valores booleanos do banco de dados); |
Número
Os filtros em números aceitam expressões em linguagem natural (por exemplo, 3 to 10
) e operadores relacionais (por exemplo, >20
). O Looker é compatível com o 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 em números também podem usar a notação de intervalo algébrico para filtrar campos numéricos.
Exemplo | Descrição |
---|---|
5 |
é exatamente 5 |
NOT 5
<>5
!=5 |
é qualquer valor, exceto exatamente 5 |
1, 3, 5, 7 |
é um dos valores 1, 3, 5 ou 7, exatamente |
NOT 66, 99, 4 |
não for um dos valores 66, 99 ou 4, exatamente. |
>1 AND <100, NOT 2 |
é maior que 1 e menor que 100, não é 2 |
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, grava o SQL "IS NULL". |
5, NOT 6, NOT 7 |
é 5, não é 6 nem 7 |
5.5 to 10
>=5.5 AND <=10 |
é 5,5 ou maior, mas também 10 ou menor |
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 que 10 e menor ou igual a 20, ou é exatamente 90 |
>=50 AND <=100 OR >=500 AND <=1000 |
está entre 50 e 100 (inclusive) ou entre 500 e 1.000 (inclusive) |
NULL |
não tem dados (quando usado como parte de uma expressão de filtro da LookML, coloque NULL entre aspas, conforme mostrado na página de documentação filters ) |
NOT NULL |
tem alguns dados (quando 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 ) |
(1, 7) |
interpretado como 1 < x < 7, em que os endpoints não estão incluídos. Embora essa notação se pareça com 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 estão incluídos |
(12, 20] |
interpretado como 12 < x <= 20, em que 12 não está incluído, mas 20 está. |
[12, 20) |
interpretado como 12 <= x < 20, em que 12 está incluído, mas 20 não está. |
(500, inf) |
interpretado como x > 500, em que 500 não está incluído e o 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 está incluído e o 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 ou 20 e 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 são baseadas em latitude e longitude, mas podem aceitar alguma linguagem natural para definir caixas e círculos em que limitar uma pesquisa.
Exemplo | Descrição |
---|---|
36.97, -122.03 |
o local está exatamente na latitude 36,97 e na longitude 122,03 |
40 miles from 36.97, -122.03 |
o local está a menos de 65 km da latitude 36,97 e da longitude -122,03 |
inside box from 72.33, -173.14 to 14.39, -61.70 |
o local está dentro de uma caixa cujo canto noroeste está na latitude 72,33 e longitude -173,14, e cujo canto sudeste está na latitude 14,39 e longitude -61,70 |
NOT NULL (works the same as -NULL) |
location tem uma latitude e uma longitude não nulas (quando usado como parte de uma expressão de filtro da LookML, coloque NOT NULL entre aspas, conforme mostrado na página de documentação filters ). |
-NULL (works the same as NOT NULL) |
location tem uma latitude e uma longitude não nulas (quando usado como parte de uma expressão de filtro da LookML, coloque -NULL entre aspas, conforme mostrado na página de documentação filters ). |
NULL |
o local tem uma latitude nula, uma longitude nula ou ambas são nulas (quando usado como parte de uma expressão de filtro da LookML, coloque NULL entre aspas, conforme mostrado na página de documentação filters ) |
Unidades de medida aceitas
Para filtrar em uma área ao redor de um determinado local, use estas unidades:
- Metros
- Pés
- Quilômetros
- Milhas
Unidades de medida no singular não são aceitas. Por exemplo, um filtro para um raio de 1,6 km deve ser escrito 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 ao atributo com a variável Liquid _user_attributes
usando a sintaxe exigida pelo dialeto do banco de dados:
{{ _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 é assim que os valores são armazenados no seu banco de dados. Para adicionar o prefixo ao valor do atributo do usuário, adicione um filtro corresponde (avançado) no campo relevante e use a variável _user_attributes
do Liquid na expressão de filtro da seguinte maneira:
sf_{{_user_attributes['salesforce_username']}}
Você pode usar o mesmo padrão para inserir atributos do usuário em filtros de painel e filtros de elementos do painel da LookML.