Las expresiones de filtro son una forma avanzada de filtrar las consultas de Looker, y en esta página se describe cómo escribirlas. En la sección Explorar de Looker, puedes agregar un filtro y elegir la opción coincidencias (avanzado) para usarlas. También se usan en LookML para elementos que toman un parámetro filter
.
Cuando uses expresiones de filtro en LookML, debes colocar la expresión entre comillas (consulta la página de documentación de
filters
para conocer el uso adecuado). Esto es especialmente importante para valores lógicos comoNULL
.Cuando usas expresiones de filtro en la sección Explorar de Looker, no necesitas colocar la expresión entre comillas.
Las expresiones de filtro no son compatibles con los otorgamientos de acceso. Consulta la página de documentación de
access_grant
para obtener más información.
Cadena
Las coincidencias en los filtros de strings dependen de la configuración de
case_sensitive
en el archivo del modelo y de si tu dialecto admite la distinción entre mayúsculas y minúsculas. Por ejemplo, sicase_sensitive
está habilitado en tu modelo, la expresiónFOO
no coincidirá con la palabra “comida”. Sicase_sensitive
no está habilitado, o si tu dialecto no admite mayúsculas y minúsculas, la expresiónFOO
coincidirá con la palabra “comida”.
Ejemplo | Descripción |
---|---|
FOO |
es igual a "FOO", exactamente |
FOO,BAR |
equivale a "FOO" o "BAR", exactamente |
%FOO% |
contiene “FOO”, coincide con “buffoon” y “comida rápida” |
FOO% |
comienza con “FOO”, coincide con “foolish” y “food”, pero no con “buffoon” ni “comida rápida” |
%FOO |
termina con "FOO", coincide con "buffoo" y "fast foo", pero no con "buffoon" ni "comida rápida" |
F%OD |
comienza con una "F" y termina con "OD", coincide con "fast food" |
EMPTY |
la string está vacía (tiene cero caracteres) o es nula (sin valores) |
NULL |
es nulo (cuando se usa como parte de una expresión de filtro LookML, coloca NULL entre comillas, como se muestra en la página de documentación de filters ) |
-FOO |
no es igual a "FOO" (es cualquier valor excepto "FOO"), coincide con "pizza", "papelera", "divertido", pero no con "foo" |
-FOO,-BAR |
no es igual a "FOO" o "BAR", coincide con cualquier valor excepto "FOO" y "BAR" |
-%FOO% |
no contiene "FOO", no coincide con "buffoon" o "comida rápida" |
-FOO% |
no comienza con "FOO", no coincide con "foolish" o "food" |
-%FOO |
no termina con "FOO", no coincide con "buffoo" o "fast foo" |
-EMPTY |
la string no está vacía (tiene al menos un carácter) |
-NULL |
el valor de la columna no es nulo (cuando se usa como parte de una expresión de filtro LookML, coloca -NULL entre comillas, como se muestra en la página de documentación de filters ) |
FOO%,BAR |
comienza con "FOO" o es "BAR" exactamente, coincide con "food" y con "bar", pero no con "barfood" |
FOO%,-FOOD |
comienza con "FOO", pero no es "FOOD" |
_UF |
tiene un solo carácter seguido de "UF", coincide con "buffoon" |
Incluir caracteres especiales en los filtros de strings
Ten en cuenta estas reglas para incluir caracteres especiales en los filtros de strings:
- Para incluir
"
,%
o_
, agrega el prefijo con el carácter de escape^
. Por ejemplo:^"
,^%
y^_
- Para incluir un elemento
-
inicial, debes escaparlo como^-
. Esto solo es necesario si-
es el carácter principal. No es necesario escapar-
si está dentro de la string. - Para incluir
^
, escápalo como^^
. - Para incluir una coma en un filtro de strings de IU normal, agrega una coma de barra inversa como prefijo,
\`. For example:
Santa Cruz\, CA. - Para incluir una coma con la opción coincidencias (avanzado) en un filtro, agrega la coma con el carácter de escape
^
. Por ejemplo:Santa Cruz^, CA
. - Para incluir una coma en una expresión de filtro en LookML, agrega un prefijo con el carácter de escape
^
. Por ejemplo:
field: filtered_count {
type: count
filters: [city: "Santa Cruz^, CA"]
}
En algunos casos, es posible que también quieras escapar o incluir caracteres especiales en los filtros de strings cuando usas simulacros personalizados para el contenido de Looker. Para obtener más información, consulta la sección Aspectos para tener en cuenta cuando vinculas contenido de Looker en la página de parámetros
Link
.
Fecha y hora
El filtrado de fechas de Looker permite el uso de frases en inglés en lugar de funciones de fecha de SQL.
Estructura básica de los filtros de fecha y hora
Para los siguientes ejemplos:
{n}
es un número entero.{interval}
es un incremento de tiempo, como horas, días, semanas o meses.La frase que usas determina si
{interval}
incluirá períodos parciales o solo completos. Por ejemplo, la expresión3 days
incluye el día actual y parcial, así como los dos días anteriores. La expresión3 days ago for 3 days
incluye los tres días completos anteriores y excluye el día parcial actual. Para obtener más información, consulta la sección Fechas relativas.{time}
puede especificar una hora con formato AAAA-MM-DD HH:MM:SS o AAAA/MM/DD HH:MM:SS, o una fecha con formato AAAA-MM-DD o AAAA/MM/DD. Cuando uses el formato AAAA-MM-DD, asegúrate de incluir ambos dígitos para el mes y el día, por ejemplo, 2016-01. Truncar un mes o día a un solo dígito se interpreta como una compensación, no como una fecha. Por ejemplo, 2016-1 se interpreta como 2016 menos un año, o 2015.
Estas son todas las combinaciones posibles de los filtros de fecha:
Combinación | Ejemplo | Notas |
---|---|---|
this {interval} |
this month |
Puedes usar this week , this month , this quarter o this year . Ten en cuenta que no se admite this day . Si quieres obtener datos del día actual, puedes usar 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 no incluye la hora que especificas. La expresión before 2018-01-01 mostrará datos de todas las fechas anteriores al 1 de enero de 2018, pero no mostrará datos del 1 de enero de 2018. |
after {time} |
after 2018-10-05 |
after incluye la hora que especifiques. Por lo tanto, la expresión after 2018-10-05 mostrará datos del 5/10/2018 y todas las fechas posteriores al 05/10/2018. |
{time} to {time} |
2018-05-18 12:00:00 to 2018-05-18 14:00:00 |
El valor inicial del tiempo es inclusivo. El último valor de tiempo no lo es. Por lo tanto, la expresión 2018-05-18 12:00:00 to 2018-05-18 14:00:00 mostrará datos con la hora “2018-05-18 12:00:00” a “2018-05-18 13:59:59”. |
this {interval} to {interval} |
this year to second |
Se usa el principio de cada intervalo. Por ejemplo, la expresión this year to second muestra datos desde el comienzo del año en que se ejecuta la consulta hasta el segundo del segundo. this week to day muestra los datos desde el comienzo de la semana en la que se ejecuta la consulta hasta el comienzo del día en que se ejecuta. |
{time} for {n} {interval} |
2018-01-01 12:00:00 for 3 days |
|
today |
today |
|
yesterday |
yesterday |
|
tomorrow |
tomorrow |
|
{day of week} |
Monday |
Si especifica un día de la semana con un campo Dimension Group Date, se mostrará la fecha más reciente que coincida con el día de la semana especificado. Por ejemplo, la expresión Dimension Group Date matches (advanced) Monday muestra el lunes más reciente.También puedes usar {day of week} con las palabras clave before y after en este contexto. Por ejemplo, la expresión Dimension Group Date matches (advanced) after Monday muestra el lunes más reciente y todo lo que aparece después del lunes más reciente. La expresión Dimension Group Date matches (advanced) before Monday se muestra todos los días antes del lunes más reciente, pero no muestra el lunes más reciente.Si especificas un día de la semana con un campo Dimension Group Day of Week, aparecerá cada día que coincida con el día de la semana especificado. Por lo tanto, la expresión Dimension Group Day of Week matches (advanced) Monday se muestra todos los lunes. |
next {week, month, quarter, fiscal quarter, year, fiscal year} |
next week |
La palabra clave next es única, ya que requiere uno de los intervalos mencionados anteriormente y no funcionará con otros intervalos. |
{n} {interval} from now |
3 days from now |
|
{n} {interval} from now for {n} {interval} |
3 days from now for 2 weeks |
Los filtros de fecha también se pueden combinar:
- Para obtener una lógica OR: Escribe varias condiciones en el mismo filtro, separadas por comas. Por ejemplo,
today, 7 days ago
significa "hoy o 7 días atrás". - Para obtener una lógica del operador Y: escribe las condiciones, una por una, en varios filtros de fecha u hora. Por ejemplo, puedes colocar
after 2014-01-01
en un filtro Fecha de creación y, luego,before 2 days ago
en un filtro Hora de creación. Esto implica "el 1 de enero de 2014 y después, y antes de dos días".
Fechas absolutas
Los filtros de fechas absolutas usan los valores de fecha específicos para generar resultados de consultas. Son útiles a la hora de crear consultas para períodos específicos.
Ejemplo | Descripción |
---|---|
2018/05/29 |
el 29/05/2018 |
2018/05/10 for 3 days |
del 10/05/2018 a las 20:00:00 a 2018/05/12 23:59:59 |
after 2018/05/10 |
2018/05/10 00:00:00 y posteriores |
before 2018/05/10 |
antes del 10/05/2018 00:00:00 |
2018/05 |
durante todo el mes de 2018/05 |
2018/05 for 2 months |
durante los meses completos de 2018/05 y 2018/06 |
2018/05/10 05:00 for 5 hours |
del 10/05/2018 a las 05:00:00 al 10/05/2018 09:59:59 |
2018/05/10 for 5 months |
Desde el 2018/05/10 a las 20:00:00 hasta el 9/10/2018 a las 23:59:59 |
2018 |
todo el año de 2018 (1 de enero de 2018 a las 00:00:00 a 31/12/2018 a las 23:59:59) |
FY2018 |
todo el año fiscal a partir de 2018 (si tus desarrolladores de Looker especificaron que tu año fiscal comienza en abril, entonces es del 1 de abril de 2018 a las 00:00 a 23 de mayo de 2019) |
FY2018-Q1 |
primer trimestre del año fiscal a partir de 2018 (si sus desarrolladores de Looker especificaron que su año fiscal comienza en abril, entonces es del 2018/04/01 de 00:00:00 a 2018/06/30 23:59:59) |
Fechas relativas
Los filtros de fecha relativa te permiten crear consultas con valores de fecha progresiva relativos a la fecha actual. Esto es útil para crear consultas que se actualizan cada vez que se ejecuta la consulta.
Para todos los ejemplos que se muestran a continuación, supongamos que hoy es viernes 2018/05/18 18:30:02. En Looker, las semanas comienzan el lunes, a menos que cambie ese parámetro de configuración con week_start_day
.
Segundos
Ejemplo | Descripción |
---|---|
1 second |
el segundo actual (2018/05/18 18:30:02) |
60 seconds |
Hace 60 segundos por 60 segundos (2018/05/18 18:29:02 hasta 2018/05/18 18:30:01) |
60 seconds ago for 1 second |
Hace 60 segundos 1 segundo (2018/05/18 18:29:02) |
Minutos
Ejemplo | Descripción |
---|---|
1 minute |
el minuto actual (2018/05/18 18:30:00 a 18:30:59) |
60 minutes |
Hace 60 minutos y 60 minutos (18/05/2018, 17:31:00 hasta el 18/05/2018 a las 18:30:59) |
60 minutes ago for 1 minute |
Hace 60 minutos para 1 minuto (18/05/2018 17:30:00 hasta 18/05/2018 17:30:59) |
Horas
Ejemplo | Descripción |
---|---|
1 hour |
la hora actual (2018/05/18 18:00-2018/05/18 18:59) |
24 hours |
la misma hora del día que se registró hace 24 horas (24 de mayo de 2018, 19:00 hasta el 18 de mayo de 2018 a las 18:59) |
24 hours ago for 1 hour |
la misma hora del día que hace 24 horas (17/05/2018, 18:00 hasta el 17/05/2018 a las 18:59) |
Días
Ejemplo | Descripción |
---|---|
today |
el día actual (2018/05/18 00:00 a 2018/05/18 23:59) |
2 days |
todo ayer y hoy (17/05/2018 desde las 00:00 hasta el 18/05/2018 a las 23:59) |
1 day ago |
Solo ayer (2018/05/17 00:00 hasta 2018/05/17 23:59) |
7 days ago for 7 days |
los últimos 7 días completos (2018/05/11 00:00 hasta 2018/05/17 23:59) |
today for 7 days |
el día actual, a partir de la medianoche, para los próximos 7 días (2018/05/18 00:00 hasta 2018/05/24 23:59) |
last 3 days |
Hace 2 días hasta el final del día actual (2018/05/16 00:00 hasta 2018/05/18 23:59) |
7 days from now |
7 días en el futuro (2018/05/25 00:00 hasta 2018/05/25 23:59) |
Semanas
Ejemplo | Descripción |
---|---|
1 week |
parte superior de la semana en curso (2018/05/14 00:00 to 2018/05/20 23:59) |
this week |
parte superior de la semana en curso (2018/05/14 00:00 to 2018/05/20 23:59) |
before this week |
en cualquier momento hasta el inicio de la semana (antes del 14/05/2018 a las 00:00) |
after this week |
en cualquier momento después de la parte superior de esta semana (14/05/2018 a las 00:00 y posteriores) |
next week |
el siguiente lunes siguiente en una semana (2018/05/21 00:00 hasta 2018/05/27 23:59) |
2 weeks |
hace una semana (lunes) (2018/05/07 00:00 hasta 2018/05/20 23:59) |
last week |
sinónimo de "hace 1 semana" |
1 week ago |
hace una semana el lunes siguiente en la semana 2018/05/07 00:00 hasta 2018/05/13 23:59 |
Meses
Ejemplo | Descripción |
---|---|
1 month |
el mes actual (2018/05/01 00:00 a 2018/05/31 23:59) |
this month |
sinónimo de "hace 0 meses" (01/05/2018 00:00 hasta 31/05/2018 23:59) |
2 months |
los últimos dos meses (1 de abril de 2018 a las 00:00 a 21/05/23:59) |
last month |
todo el 4/2018 |
2 months ago |
todo el 03/2018 |
before 2 months ago |
todo el tiempo antes del 1 de marzo de 2018 |
next month |
todo el 6 de 2018 |
2 months from now |
todo el 7/2018 |
6 months from now for 3 months |
del 11 al 2018/01 |
Trimestres
Ejemplo | Descripción |
---|---|
1 quarter |
el trimestre actual (01/04/2018 desde la 00:00 hasta el 30/06/2018 a las 23:59) |
this quarter |
Sinónimo de "hace 0 trimestres" (01/04/2018 desde las 00.00 hasta la 23.6./2018) |
2 quarters |
los últimos dos trimestres (1/1/2018, 00:00 hasta 30/06/2018 a las 23:59) |
last quarter |
todo el 1er trimestre (de 2018/01/01 00:00 a 2018/03/31 23:59) |
2 quarters ago |
todo el T4 del año pasado (2017/010/01 00:00 a 2017/12/31 23:59) |
before 2 quarters ago |
todo el año antes del T4 del año pasado |
next quarter |
todo el trimestre siguiente (2018/07/01 00:00 a 2018/09/30 23:59) |
2018-07-01 for 1 quarter |
todo el tercer trimestre (del 1/7/2018 al 30/09/2018 a las 23:59) |
2018-Q4 |
todo el 4o trimestre (2018/10/01 00:00 hasta 2018/12/31 23:59) |
Si tus desarrolladores de Looker especificaron con un año fiscal, puedes escribir
fiscal
en estas expresiones para usar un trimestre fiscal en lugar de un trimestre calendario. Por ejemplo, puedes usarlast fiscal quarter
.
Años
Ejemplo | Descripción |
---|---|
1 year |
durante todo el año actual (del 1/1/2018 al 31/12/2018 a las 23:59) |
this year |
durante todo el año actual (del 1/1/2018 al 31/12/2018 a las 23:59) |
next year |
todo el año siguiente (1 al 31 de diciembre de 2019 a las 23:59) |
2 years |
los últimos dos años (1/1/2017 de 00:00 a 31/12/2018 23:59) |
last year |
todo 2017 |
2 years ago |
todo el 2016 |
before 2 years ago |
todo el tiempo antes del 1 de enero de 2016 (no incluye ningún día entre el 1 de enero de 2016 y el 18 de mayo de 2016) |
Si tus desarrolladores de Looker especificaron con un año fiscal, puedes escribir
fiscal
en estas expresiones para usar un año fiscal en lugar de un trimestre calendario. Por ejemplo, puedes usarlast fiscal year
.
Booleano
Si filtras los valores de tipo verdadero o falso en Looker, debes saber con qué tipo de valor (verdadero o falso) estás interactuando.
Ejemplo | Descripción |
---|---|
yes o Yes |
se evalúa como verdadero Desarrolladores de Looker: Para las dimensiones de type: yesno usa minúsculas, para los parámetros filters (como los que se usan en una medida o que se usan en un always_filter ), usa mayúsculas |
no o No |
El campo se evalúa como falso. Los desarrolladores de Looker: Para las dimensiones de type: yesno , usa minúsculas. Para los parámetros de filters (como los que se usan en una medida o que se usan en un always_filter ), usa mayúsculas. |
TRUE |
campo contiene verdadero (para campos que contienen valores de base de datos booleanas) |
FALSE |
el campo contiene un valor falso (para los campos que contienen valores booleanos de base de datos) |
Número
Los filtros en números admiten expresiones de lenguaje natural (por ejemplo, 3 to 10
) y operadores relacionales (por ejemplo, >20
). Looker admite el operador OR
para expresar varios rangos de filtro (por ejemplo, 3 to 10 OR 30 to 100
). El operador AND
se puede usar para expresar rangos numéricos con operadores relacionales (por ejemplo, >=3 AND <=10
) a fin de especificar un rango. Los filtros en números también pueden usar la notación de intervalos algebraicos para filtrar campos numéricos.
Es posible que la sintaxis de las expresiones de filtro numérico que usan
NOT
no sea intuitiva. Si la primera condición de filtro contiene unNOT
y ninguna otra condición de filtro contiene unNOT
, se denegarán todas las condiciones de filtro. Consulta los siguientes ejemplos para obtener más información.
Ejemplo | Descripción |
---|---|
5 |
es exactamente 5 |
NOT 5 |
es cualquier valor, pero exactamente 5 |
1, 3, 5, 7 |
es uno de los valores 1, 3, 5 o 7, exactamente |
NOT 66, 99, 4 |
no es uno de los valores 66, 99 o 4, exactamente |
>1, NOT 2, <100 |
es mayor que 1, no es 2 y es menor que 100 |
NOT >1, 2, <100 |
es menor o igual que 1, no es 2, y es superior o igual a 100 (Looker reconoce que esta es una condición imposible y, en su lugar, escribirá SQL ES NULL). |
5, NOT 6, NOT 7 |
es 5, no es 6 ni 7 |
5.5 to 10 |
es 5.5 o superior, pero también 10 o menor |
NOT 3 to 80.44 |
es inferior a 3 o mayor que 80.44 |
1 to |
es 1 o mayor |
to 10 |
es 10 o menos |
>10 AND <=20 OR 90 |
es mayor que 10 y menor o igual que 20, o exactamente 90 |
>=50 AND <=100 OR >=500 AND <=1000 |
es entre 50 y 100, inclusive, o entre 500 y 1,000, ambos |
NULL |
No contiene datos (cuando se usa como parte de una expresión de filtro de LookML, coloca NULL entre comillas, como se muestra en la página de documentación de filters ). |
NOT NULL |
contiene algunos datos (cuando se usa como parte de una expresión de filtro de LookML, coloca NOT NULL entre comillas, como se muestra en la página de documentación de filters ) |
(1, 7) |
Se interpreta como 1 < x < 7, en la que los extremos no se incluyen. Si bien esta notación se asemeja a un par ordenado, en este contexto hace referencia al intervalo en el que estás trabajando. |
[5, 90] |
interpretado como 5 <= x <= 90, en el que se incluyen los extremos |
(12, 20] |
interpretado como 12 < x <= 20, donde no se incluye 12, pero sí se incluye 20 |
[12, 20) |
interpretado como 12 <= x < 20, donde se incluye 12, pero no se incluye 20. |
(500, inf) |
interpretado como x > 500, en el que 500 no está incluido y el infinito siempre se expresa como "abierto" (no incluido). Se puede omitir inf y lo anterior se puede escribir como (500,) |
(-inf, 10] |
interpretado como x <= 10, en el que se incluye 10 y el infinito siempre se expresa como "abierto" (no incluido). Se puede omitir inf y lo anterior se puede escribir como (,10) |
[0,9],[20,29] |
los números entre 0 y 9 inclusive, o entre 20 y 29 inclusive |
[0,10],20 |
De 0 a 10 inclusive, o 20 |
NOT (3,12) |
interpretado como x < 3 y x > 12 |
NOT 10,[1,5) |
todos los números, excepto 10, y excepto 1 hasta 5 (sin incluir) |
Ubicación
Las expresiones de filtros de ubicación se basan en la latitud y longitud, pero pueden aceptar algún lenguaje natural para definir cuadros y círculos en los que limitar una búsqueda.
Ejemplo | Descripción |
---|---|
36.97, -122.03 |
la ubicación exacta está en la latitud 36.97, la longitud 122.03 |
40 miles from 36.97, -122.03 |
la ubicación se encuentra a 64 kilómetros de la latitud 36.97, longitud -122.03 |
inside box from 72.33, -173.14 to 14.39, -61.70 |
la ubicación se encuentra dentro de un cuadro cuya esquina noroeste está en la latitud 72.33, la longitud -173.14 y cuya esquina sureste está en la latitud 14.39, la longitud -61.70 |
NOT NULL (works the same as -NULL) |
La ubicación tiene una latitud no nula y una longitud no nula (cuando se usa como parte de una expresión de filtro de LookML, coloca NOT NULL entre comillas, como se muestra en la página de documentación de filters ). |
-NULL (works the same as NOT NULL) |
La ubicación tiene una latitud no nula y una longitud no nula (cuando se usa como parte de una expresión de filtro de LookML, coloca -NULL entre comillas, como se muestra en la página de documentación de filters ). |
NULL |
La ubicación tiene una latitud nula o una longitud nula, o ambas son nulas (cuando se usa como parte de una expresión de filtro de LookML, coloca NULL entre comillas, como se muestra en la página de documentación de filters ). |
Unidades de medida admitidas
Para filtrar en un área alrededor de una ubicación determinada, puedes usar las siguientes unidades:
- Metros
- Pies
- Kilómetros
- Millas
No se admiten las unidades singulares de medición. Por ejemplo, el filtro de un radio de 1.6 km debe escribirse within 1 miles of 36.97, -122.03
.
Valores del atributo del usuario
Para usar el valor de un atributo del usuario en una expresión de filtro, haga referencia al atributo del usuario con la variable líquida _user_attributes
:
{{ _user_attributes['name_of_attribute'] }}
Por ejemplo, supongamos que necesitas aplicar un prefijo sf_
al valor del atributo de usuario salesforce_username
, ya que los valores se almacenan en tu base de datos. Para agregar el prefijo al valor del atributo de usuario, puedes agregar un filtro coincidencias (avanzado) en el campo relevante y usar la variable líquida _user_attributes
en la expresión de filtro de la siguiente manera:
sf_{{_user_attributes['salesforce_username']}}
Puede usar el mismo patrón para insertar atributos de usuario en los filtros del panel de LookML y los filtros de los elementos del panel.