Uso de parámetros SQL en el editor de consultas nativo.

En casos de uso avanzados, puede utilizar parámetros SQL para filtrar consultas nativas en el panel de vista previa.

La consola del creador tiene la capacidad flexible de permitir variables en consultas nativas (SQL). Esto le permite reemplazar dinámicamente los valores en sus consultas utilizando widgets de filtro o mediante la URL de la consulta.

02-widget

Las opciones y configuraciones para sus variables aparecerán en el panel lateral Variables del generador de consultas nativo tan pronto como defina una variable. Entonces, ¿cómo se define una variable?

01-variables

Definición de variables

Al escribir su consulta nativa, se crea una variable llamada variable_name. Las variables se pueden escribir en el panel lateral, lo que cambia su comportamiento. Todos los tipos de variables que no sean "Filtro de campos" harán que se coloque un widget de filtro en esta pregunta correspondiente al tipo de variable elegido. Cuando se selecciona un valor a través de un widget de filtro, ese valor reemplaza la variable correspondiente en la plantilla SQL dondequiera que aparezca. Si tiene varios widgets de filtro, puede hacer clic y arrastrar sobre cualquiera de ellos para moverlos y reordenarlos.

Este ejemplo define una variable llamada cat, lo que le permite cambiar dinámicamente la cláusula WHERE en esta consulta:

SELECT count(*)
FROM products
WHERE category =

El tipo de variable de filtro de campo

Establecer una variable para que escriba "Filtro de campo" le permite asignarla a un campo en cualquier tabla de la base de datos actual y le permite mostrar un widget de filtro desplegable con los valores del campo que ha conectado. Variables de filtro de campo también. le permite conectar su consulta SQL a un filtro de panel si lo coloca en un panel.

Una variable de filtro de campo inserta un SQL similar al generado por el generador de consultas de la GUI al agregar filtros a las columnas existentes. Esto es útil porque le permite hacer cosas como insertar filtros de rango de fechas dinámicos en su consulta nativa. Al agregar un filtro de campo, debe vincular esa variable a una columna específica. Las variables de filtro de campo deben usarse dentro de una cláusula WHERE en SQL o una cláusula $ match en MongoDB.

Observación:

  • Los alias de tabla no son compatibles porque los filtros de campo generan SQL basado en el campo mapeado.
  • Algunas bases de datos requieren el esquema en la cláusula FROM. Un ejemplo de Oracle sería FROM "esquema". "Mesa". En BigQuery, necesitas retroceder, como FROM `dataset_name.table`.

Ejemplo:

SELECT count(*)
FROM products
WHERE

Creación de filtros de consulta SQL mediante variables de filtro de campo

  • Categoría
  • Ciudad
  • Clave de entidad
  • Nombre de la entidad
  • Clave externa
  • Estado
  • UNIX timestamp (segundos)
  • UNIX timestamp (milisegundos)
  • Código postal

El campo también puede ser una fecha y una hora, que se pueden dejar como "Sin tipo especial" en el modelo de datos.

A continuación, verá un menú desplegable llamado "Widget", que le permitirá elegir el tipo de widget de filtro que desea para su pregunta, que es especialmente útil para los campos de fecha y hora. Puede seleccionar "Ninguno" si no desea un widget para la pregunta, lo que puede hacer, por ejemplo, si solo desea permitir que esta pregunta se asigne a un filtro de panel (ver más sobre esto a continuación).

Nota: Si no ve la opción para mostrar un widget de filtro, asegúrese de que el campo asignado esté configurado en uno de los tipos anteriores. Si aún no funciona correctamente, comuníquese con nuestro equipo de soporte para resincronizar los valores almacenados en caché para ese campo.

Los widgets de filtro no se pueden mostrar si la variable está asignada a un campo marcado como:

  • URL de imagen de avatar
  • Descripción
  • Correo electrónico
  • Enum
  • Campo que contiene JSON
  • URL de la imagen
  • Número
  • Latitud
  • Longitud
  • URL

Establecer un valor predeterminado

Si ingresa un valor predeterminado para el filtro de campo, ese valor se seleccionará en el filtro cada vez que regrese a esta pregunta. Sin embargo, si borra el filtro, no se pasará ningún valor (es decir, ni siquiera el valor predeterminado). El valor predeterminado no tiene ningún efecto sobre el comportamiento de su consulta SQL cuando se muestra en un tablero.

Valor predeterminado en la consulta

También puede definir valores predeterminados directamente en su consulta, que son útiles al definir valores predeterminados complejos. Tenga en cuenta que es posible que deba reemplazar el hash (#) por la sintaxis de comentarios de la base de datos que está utilizando. Algunas bases de datos utilizan guiones dobles (-) como sintaxis de comentarios.

Ejemplo actual de filtro de fecha:

SELECT p.*
FROM products p
WHERE p.createdAt = [[ #]]CURRENT_DATE()

Conectando la pregunta SQL al filtro del panel

Para que una pregunta SQL / nativa guardada se utilice con un filtro de panel, debe contener al menos un filtro de campo. El tipo de filtro de panel que se puede usar con la pregunta SQL depende del campo que asigne a los filtros de campo de la pregunta. Por ejemplo, si tiene un filtro de campo llamado y lo asigna a un campo de estado, puede asignar un filtro de panel de ubicación a su consulta SQL. En este ejemplo, podría crear un nuevo panel o ir a uno existente, hacer clic en el botón "Editar", agregar la consulta SQL que contiene el filtro de campo de estado, agregar un nuevo filtro de panel o editar un filtro de ubicación existente y hacer clic en el lista desplegable en la tarjeta de preguntas SQL para ver el filtro de campo de estado.

state-field-filter

Cláusulas Opcionales

Para hacer que una cláusula sea opcional en su consulta nativa, escriba [[corchetes alrededor de]]. Si se le da un valor a la variable, la cláusula completa se insertará en la plantilla. De lo contrario, se ignorará toda la cláusula.

En este ejemplo, si no se le da ningún valor al cat de su widget de filtro o URL, la consulta solo seleccionará todas las filas de la tabla de productos. Pero si cat tiene un valor, como Widget, entonces la consulta solo obtendrá productos con un tipo de categoría de Widget:

SELECT count(*)
FROM products
[[WHERE category = ]]

Para utilizar varias cláusulas opcionales, debe incluir al menos una cláusula WHERE regular seguida de cláusulas opcionales, cada una de las cuales comienza con AND.

Ejemplo:

SELECT count(*)
FROM products
WHERE True
[[AND id = ]]
[[AND category = ]]

Cuando se utiliza un filtro de campo, el nombre de la columna no debe incluirse en SQL. En cambio, la variable debe asignarse a un campo en el panel lateral.

Ejemplo:

SELECT count(*)
FROM products
WHERE True
[[AND ]]
[[AND ]]