filter

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.

  1. 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 ;;
      }
    
  2. Ahora, crea un campo filter para vincularlo a la dimensión field_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.