Usa filtros con plantilla

Uso

view: view_name {
filter: filter_name { ... }
}
Jerarquía
filter
Valor predeterminado
Ninguna

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 filtro y un nombre para ese filtro. Un usuario puede agregar campos de solo filtro como filtros cuando explora, pero no puede agregarlos a su conjunto de resultados. Estos campos de solo filtro son útiles a través de los filtros con plantilla, que son un tema avanzado de LookML. También puedes consultar el ejemplo de Usa filter para filtrar por un campo oculto.

El nombre del filtro debe tener las siguientes características:

  • Ser únicos en cualquier vista
  • Consisten de caracteres a a z (sin mayúsculas), 0 a 9 o _.
  • Comenzar con una letra

Hay muchos tipos de campos de filtro, como se explica con más detalle en la página de documentación Dimensión, filtro y tipos de parámetros.

Ejemplos

Aquí tienes algunos ejemplos para usar el parámetro filter.

Crea un filtro especificado por el usuario

Crea un filtro que permita al usuario especificar el order_region:

filter: order_region {
  type: string
}

Define una tabla derivada dinámica con un filtro con plantilla

Como se muestra en la página de documentación Filtros basados en plantillas y parámetros líquidos, define una tabla derivada para calcular el gasto total 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 con plantilla. La entrada filter se usa en la cláusula WHERE con variables líquidas:

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 cada vez que el filtro tiene un valor. Esto permite una cláusula WHERE dinámica, basada en la entrada de filtro del usuario.

En el siguiente ejemplo, se crea un filtro que solo permite 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 dará 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 Usa filter para filtrar por un campo oculto en esta página a fin de obtener 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

Si usas el ejemplo anterior que define una tabla derivada con un valor de región dinámica, puedes usar el parámetro sql con un filtro con plantilla para compilar de forma dinámica una cláusula WHERE que se aplique a la tabla derivada y a la consulta generada por Looker principal:

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 el SQL de la tabla derivada y, debido al parámetro sql en la definición 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 que los usuarios puedan filtrar y, al mismo tiempo, evitar que los usuarios seleccionen la dimensión en una consulta.

  1. Primero, oculte la dimensión en cuestión con hidden: yes. Esto significa que la dimensión no estará disponible para que los usuarios la seleccionen desde un selector de campo Explorar.
  dimension: field_to_hide {
  type: string
  hidden: yes
  sql: ${TABLE}.field_to_hide ;;
  }
  1. 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 Usa 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, sql toma la condición del 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.