Uso
view: view_name {
filter: filter_name { ... }
}
|
Jerarquía
filter |
Valor predeterminado
Ninguno
Acepta
Un identificador de Looker para nombrar el filtro
Reglas especiales
Los nombres de los filtros no se pueden compartir con ningún otro filtro, dimension ni measure dentro del mismo view.
|
Definición
El parámetro filter declara un campo de solo filtrado y un nombre para ese filtro. Un usuario puede agregar campos solo de filtro como filtros cuando explora, pero no puede agregarlos a su conjunto de resultados. Estos campos solo de filtro son útiles con los filtros basados en plantillas, que son un tema avanzado de LookML. También puedes consultar el ejemplo de cómo usar filter para filtrar por un campo oculto.
El nombre del filtro debe cumplir con los siguientes requisitos:
- Ser único dentro de cualquier vista determinada
- Debe constar de caracteres de la A a la Z (sin mayúsculas), del 0 al 9 o un guion.
az09_ - Comenzar con una letra
Existen muchos tipos de campos de filtro, como se explica en la página de documentación Tipos de dimensiones, filtros y parámetros.
Subparámetros de filter
Consulta la página de referencia Parámetros de campo para obtener una lista de los subparámetros disponibles para los campos de LookML.
Ejemplos
Estos son algunos ejemplos para usar el parámetro filter.
Cómo crear un filtro especificado por el usuario
Crea un filtro que permita al usuario especificar el order_region:
filter: order_region {
type: string
}
Cómo definir una tabla derivada dinámica con un filtro basado en plantillas
Como se muestra en la página de documentación Filtros basados en plantillas y parámetros de Liquid, define una tabla derivada para calcular la inversión total del ciclo de vida de los clientes en una región especificada por el usuario. En este ejemplo, se usa el filter creado en el ejemplo anterior como parte de un filtro basado en plantillas. La entrada filter se usa en la cláusula WHERE con variables de 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
}
}
Usa el parámetro sql con filter
También puedes usar el parámetro sql con filter, que se aplica a la cláusula WHERE de SQL siempre que el filtro tenga un valor. Esto permite una cláusula WHERE dinámica, basada en la entrada del filtro del usuario.
En el siguiente ejemplo, se crea un filtro que solo permite los nombres de usuario que existen en el conjunto de datos:
filter: user_enabled {
type: string
suggest_dimension: user_name
sql: EXISTS (SELECT user_id FROM users WHERE {% condition %} user_name {% endcondition %} and state = 'enabled') ;;
}
En el ejemplo anterior, si la lista completa de nombres de usuario en el conjunto de datos es "Zach", "Erin" y "Brett", el filtro genera la siguiente cláusula WHERE:
WHERE EXISTS (SELECT user_id FROM users WHERE user_name in ('Zach', 'Erin', 'Brett') and state = 'enabled')
Consulta la sección Cómo usar filter para filtrar por un campo oculto en esta página para ver un ejemplo de cómo usar el parámetro sql con filter.
Usa filter para definir una tabla derivada dinámica y un filtro definido por el usuario
Con el ejemplo anterior que define una tabla derivada con un valor de región dinámico, puedes usar el parámetro sql con un filtro basado en plantillas para compilar de forma dinámica una cláusula WHERE que se aplique tanto a la tabla derivada como a la consulta principal generada por 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 ;;
}
En el ejemplo anterior, el usuario proporciona la entrada al filtro order_region, que, a su vez, proporciona el valor a la dimensión region. Luego, la dimensión region proporciona el valor de la cláusula WHERE en el SQL de la tabla derivada y, debido al parámetro sql en la definición de filter, el valor de la cláusula WHERE en una consulta generada por Looker.
Usa filter para filtrar por un campo oculto
Puedes usar filter para crear una dimensión según la cual los usuarios pueden aplicar filtros y, al mismo tiempo, evitar que la seleccionen en una consulta.
Primero, oculta la dimensión en cuestión con
hidden: yes. Esto significa que la dimensión no estará disponible para que los usuarios la seleccionen en un selector de campos de Explorar.dimension: field_to_hide { type: string hidden: yes sql: ${TABLE}.field_to_hide ;; }Ahora, crea un campo
filterpara vincularlo a la dimensiónfield_to_hide.filter: filter_on_field_to_hide { type: string sql: {% condition filter_on_field_to_hide %} ${field_to_hide} {% endcondition %} ;; }
Como se explicó en el ejemplo Uso del parámetro sql con filter, el parámetro sql del campo filter aplica SQL directamente a la cláusula WHERE de la consulta. En este caso, el sql toma la condición de filtro especificada en el filtro filter_on_field_to_hide y la aplica a la dimensión ${field_to_hide}.
De esta manera, los usuarios pueden filtrar una búsqueda por field_to_hide con el filtro filter_on_field_to_hide, mientras que la dimensión field_to_hide permanece oculta.