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 de la misma view.

Definición

El parámetro filter declara un campo solo de filtro 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 se vuelven ú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 en cualquier vista determinada
  • Constar de caracteres a a z (sin mayúsculas), 0 a 9 o _
  • Comenzar con una letra

Existen muchos tipos de campos de filtro, como se explica más adelante en la página de documentación Tipos de dimensión, filtro y parámetro.

Subparámetros para filter

Consulta la página de referencia de parámetros de campo para obtener una lista de los subparámetros que están 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 el gasto de por vida de los clientes en una región que especifica 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
  }
}

Cómo usar el parámetro sql con filter

También puedes usar el sql parámetro con filter, que se aplica a la cláusula WHERE de SQL cada vez que el filtro tiene un valor. Esto permite una cláusula WHERE dinámica, según la entrada del filtro del usuario.

En el siguiente ejemplo, se crea un filtro que permite solo 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 da como resultado 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 obtener un ejemplo de cómo usar el parámetro sql con filter.

Cómo usar 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 una 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 la tabla derivada de SQL y, debido al parámetro sql en la definición filter, el valor de la cláusula WHERE en una consulta generada por Looker.

Cómo usar filter para filtrar por un campo oculto

Puedes usar filter para crear una dimensión en la que los usuarios puedan filtrar y, al mismo tiempo, evitar que los usuarios seleccionen la dimensión 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 de cómo usar el 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 consulta por field_to_hide con el filtro filter_on_field_to_hide, mientras que la dimensión field_to_hide permanece oculta.