As expressões de filtro são uma maneira avançada de filtrar consultas do Looker. Esta página descreve como fazer isso. Na seção "Explorar" do Looker, adicione um filtro e escolha a opção correspondências (avançado). Eles também são usados no LookML para elementos que usam um parâmetro filter
.
String
Exemplo | Descrição |
---|---|
FOO |
é igual a "FOO", exatamente |
FOO,BAR |
é igual a "FOO" ou "BAR", exatamente |
%FOO% |
contém "FOO", corresponde a "bufoon" 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 filters ). |
-FOO |
não é igual a "FOO" (é qualquer valor, exceto "FOO"), corresponde a "pizza", "lixo", "diversão", 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 "bufão" 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 filters ) |
FOO%,BAR |
começa com "FOO" ou é exatamente "BAR", corresponde a "food" e corresponde a "bar", mas não a "barfood" |
FOO%,-FOOD |
começa com "FOO", mas não é "FOOD" |
_UF |
tem qualquer caractere seguido de "UF", corresponde a "bufão" |
Como incluir caracteres especiais em filtros de string
Observe estas regras para incluir caracteres especiais em filtros de string:
- Para incluir
"
,%
ou_
, use o prefixo com o caractere de escape,^
. Por exemplo:^"
,^%
e^_
- Para incluir um
-
inicial, use o caractere de escape^-
. Isso só é necessário se o-
for o caractere inicial. Não é necessário escapar de-
se ele estiver dentro da string. - Para incluir
^
, use o caractere de escape^^
. - Para incluir uma vírgula em um filtro de string de interface normal, prefixe a vírgula com um caractere de barra invertida,
\
. Por exemplo,Santa Cruz\, CA
. - Para incluir uma vírgula com a opção matches (advanced) em um filtro, prefixe a vírgula com o caractere de escape,
^
. 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"]
}
Data e hora
A filtragem de datas do Looker permite o uso de frases em inglês em vez de funções de data do SQL.
Estrutura básica de 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 frase que você usa determina se o
{interval}
vai incluir períodos parciais ou apenas períodos completos. Por exemplo, a expressão3 days
inclui o dia parcial atual e os dois dias anteriores. A expressão3 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 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. A truncagem de um mês ou dia para um único dígito é interpretada como um deslocamento, não como uma 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 . this day não é compatível. Se você quiser 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 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 a 05/10/2018. |
{time} to {time} |
2018-05-18 12:00:00 to 2018-05-18 14:00:00 |
O valor de tempo inicial é inclusivo, mas o valor de tempo posterior não é. Assim, a expressão 2018-05-18 12:00:00 to 2018-05-18 14:00:00 vai retornar dados com o horário "2018-05-18 12:00:00" até "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 a consulta é 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 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. 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 é única 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 vez, 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. 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 |
10/05/2018 00:00:00 e depois |
before 2018/05/10 |
antes de 10/05/2018 00:00:00 |
2018/05 |
no mês inteiro 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 2018/05/10 05:00:00 a 2018/05/10 09:59:59 |
2018/05/10 for 5 months |
de 2018/05/10 00:00:00 a 2018/10/09 23:59:59 |
2018 |
ano inteiro 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 tiverem especificado que o ano fiscal começa em abril, será 2018/04/01 00:00 até 2019/03/31 23:59) |
FY2018-Q1 |
primeiro trimestre do ano fiscal a partir de 2018 (se os desenvolvedores do Looker tiverem especificado que o ano fiscal começa em abril, será 2018/04/01 00:00:00 até 2018/06/30 23:59:59) |
Datas relativas
Os filtros de data relativa permitem criar consultas com valores de datas variáveis em relação à data atual. Elas são úteis ao criar consultas que são atualizadas toda vez que são executadas.
Para todos os exemplos a seguir, suponha que hoje seja sexta-feira, 18/05/2018 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 (2018/05/18 18:30:02) |
60 seconds |
Há 60 segundos por 60 segundos (18/05/2018 18:29:02 até 18/05/2018 18:30:01) |
60 seconds ago for 1 second |
Há 60 segundos por 1 segundo (18/05/2018 18:29:02) |
Minutos
Exemplo | Descrição |
---|---|
1 minute |
o minuto atual (2018/05/18 18:30:00 até 18:30:59) |
60 minutes |
Há 60 minutos por 60 minutos (18/05/2018 17:31:00 até 18:30:59) |
60 minutes ago for 1 minute |
Há 60 minutos por 1 minuto (2018/05/18 17:30:00 até 2018/05/18 17:30:59) |
Horas
Exemplo | Descrição |
---|---|
1 hour |
a hora atual (2018/05/18 18:00 até 2018/05/18 18:59) |
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 uma hora (18:00 de 17/05/2018 até 18:59 de 17/05/2018) |
Dias
Exemplo | Descrição |
---|---|
today |
o dia atual (2018/05/18 00:00 até 2018/05/18 23:59) |
2 days |
todo o dia de ontem e hoje (2018/05/17 00:00 até 2018/05/18 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 (2018/05/11 00:00 até 2018/05/17 23:59) |
today for 7 days |
o dia atual, a partir da meia-noite, por sete dias (2018/05/18 00:00 até 2018/05/24 23:59) |
last 3 days |
Há 2 dias até o fim do dia atual (2018/05/16 00:00 até 2018/05/18 23:59) |
7 days from now |
Sete dias no futuro (2018/05/18 00:00 até 2018/05/25 23:59) |
Semanas
Exemplo | Descrição |
---|---|
1 week |
início da semana atual (2018/05/14 00:00 até 2018/05/20 23:59) |
this week |
início da semana atual (2018/05/14 00:00 até 2018/05/20 23:59) |
before this week |
a qualquer momento até o fim desta semana (antes de 2018/05/14 00:00) |
after this week |
a qualquer momento após o início da semana (14/05/2018 às 00h) |
next week |
a segunda-feira seguinte, avançando uma semana (2018/05/21 00:00 até 2018/05/27 23:59) |
2 weeks |
Uma semana atrás, de segunda-feira em diante (2018/05/07 00:00 até 2018/05/20 23:59) |
last week |
sinônimo de "há uma semana" |
1 week ago |
1 semana atrás, de segunda-feira até 1 semana à frente (2018/05/07 00:00 até 2018/05/13 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" (2018/05/01 00:00 até 2018/05/31 23:59) |
2 months |
nos últimos dois meses (01/04/2018 00:00 até 31/05/2018 23:59) |
last month |
todo o mês de abril de 2018 |
2 months ago |
todo o mês de março de 2018 |
before 2 months ago |
todo o tempo antes de 2018/03/01 |
next month |
todo o mês de junho de 2018 |
2 months from now |
todo o mês de julho de 2018 |
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 até 30/06/2018 23:59) |
this quarter |
sinônimo de "0 trimestres atrás" (2018/04/01 00:00 até 2018/06/30 23:59) |
2 quarters |
os dois últimos trimestres (2018/01/01 00:00 até 2018/06/30 23:59) |
last quarter |
todo o primeiro trimestre (2018/01/01 00:00 a 2018/03/31 23:59) |
2 quarters ago |
todo o quarto trimestre do ano passado (2017/01/01 00:00 até 2017/12/31 23:59) |
before 2 quarters ago |
todo o tempo antes do 4º trimestre do ano passado |
next quarter |
todo o trimestre seguinte (2018/07/01 00:00 até 2018/09/30 23:59) |
2018-07-01 for 1 quarter |
todo o terceiro trimestre (2018/07/01 00:00 até 2018/09/30 23:59) |
2018-Q4 |
todo o 4º trimestre (2018/10/01 00:00 até 2018/12/31 23:59) |
Anos
Exemplo | Descrição |
---|---|
1 year |
todo o ano atual (2018/01/01 00:00 até 2018/12/31 23:59) |
this year |
todo o ano atual (2018/01/01 00:00 a 2018/12/31 23:59) |
next year |
Todo o ano seguinte (2019/01/01 00:00 a 2019/12/31 23:59) |
2 years |
nos últimos dois anos (01/01/2017 00:00 até 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 2016/01/01 (não inclui dias entre 2016/01/01 e 2016/05/18) |
Booleano
Para filtrar valores do tipo verdadeiro ou falso no Looker, você precisa saber com qual tipo de valor está interagindo.
Exemplo | Descrição |
---|---|
yes ou Yes |
campo é avaliado como verdadeiro
Desenvolvedores do Looker: use letras minúsculas para as dimensões type: yesno e letras maiúsculas para os parâmetros filters (como aqueles usados em uma métrica ou usados em um always_filter ). |
no ou No |
campo é avaliado como falso
Desenvolvedores do Looker: use letras minúsculas para as dimensões type: yesno e letras maiúsculas para os parâmetros filters (como aqueles usados em uma métrica ou usados em um always_filter ). |
TRUE |
campo contém "true" (para campos que contêm valores de banco de dados booleanos) |
FALSE |
campo contém "false" (para campos que contêm valores de banco de dados booleanos) |
Número
Os filtros de números oferecem suporte a 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.
Exemplo | Descrição |
---|---|
5 |
é exatamente 5 |
NOT 5
<>5
!=5 |
é qualquer valor, exceto 5 |
1, 3, 5, 7 |
é exatamente um dos valores 1, 3, 5 ou 7 |
NOT 66, 99, 4 |
não for um dos valores 66, 99 ou 4. |
>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, vai escrever 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 mais |
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 ou entre 500 e 1.000 |
NULL |
não tem dados (quando usado como parte de uma expressão de filtro do 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] |
interpretada 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 a 29 |
[0,10],20 |
De 0 a 10 ou 20 |
NOT (3,12) |
interpretada como x < 3 e x > 12 |
Local
As expressões de filtro de local são baseadas em latitude e longitude, mas podem aceitar linguagem natural para definir caixas e círculos para limitar uma pesquisa.
Exemplo | Descrição |
---|---|
36.97, -122.03 |
A localização está exatamente na latitude 36,97 e na longitude 122,03 |
40 miles from 36.97, -122.03 |
a localização está a menos de 64 km de latitude 36,97 e longitude -122,03 |
inside box from 72.33, -173.14 to 14.39, -61.70 |
A localização está em 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) |
O local tem uma latitude e uma longitude não nulas. 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 . |
-NULL (works the same as NOT NULL) |
O local tem uma latitude e uma longitude não nulas. Quando 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 longitude nula ou ambos são nulos (quando usado como parte de uma expressão de filtro do LookML, coloque NULL entre aspas, conforme mostrado na página de documentação filters ). |
Unidades de medida aceitas
Para filtrar uma área ao redor de um determinado local, use estas unidades:
- Metros
- Pés
- Quilômetros
- Milhas
Não é possível usar unidades de medida singulares. Por exemplo, a filtragem de um raio de 1,6 km deve 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 ao atributo do usuário com a variável Liquid _user_attributes
usando a sintaxe exigida pelo dialeto do seu 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 matches (avançado) no campo relevante e use a variável _user_attributes
do Liquid na expressão do filtro da seguinte maneira:
sf_{{_user_attributes['salesforce_username']}}
Você pode usar o mesmo padrão para inserir atributos do usuário nos filtros de dashboard e elementos de dashboard do LookML.