Cree conjuntos de datos para lógica compleja o modelos mediante la escritura de consultas SQL personalizadas. Las consultas ad hoc también admiten el paso de parámetros para escenarios de análisis dinámico.
Requisitos previos
Debe haberse conectado a un origen de datos. Para obtener más información, consulte Connect to a data source.
Limitaciones
Los orígenes de datos de API no son compatibles con consultas ad hoc.
Introducir código SQL
Puede crear una consulta ad hoc de las siguientes maneras.
-
Vaya a la página de consultas ad hoc.
Opción 1: En la página Data Sources, haga clic en Create datasets in SQL en la esquina superior derecha.

Opción 2: En el lienzo del relational model del editor de conjuntos de datos, seleccione un origen de datos. Si no hay tablas de datos en el lienzo, haga clic en Click to use SQL code to create a dataset en el lienzo o en Create table with SQL code en el panel izquierdo.

-
Opción 3: En el lienzo de physical modeling del editor de conjuntos de datos, haga clic en Create table with SQL code en el panel izquierdo.

-
Después de introducir el código SQL, haga clic en Run.

A continuación se muestra un ejemplo de instrucción SQL:
SELECT report_date, or*******el, shipping_type, area, price, order_number from company_sales_record where $expr{report_date :report_date} and $expr{order_level :order_level} and $expr{order_number :or********er}Una vez que la consulta se ejecuta correctamente, puede previsualizar los resultados en la pestaña Result.

Haga clic en Create Dataset para guardar el conjunto de datos creado a partir de la consulta ad hoc.
Modificar código SQL
Puede modificar el código SQL de tres formas:
Haga clic en el icono
a la derecha de la tabla destino.
Haga clic en la tabla destino dentro del lienzo. En la sección Table Details de la parte inferior, haga clic en Edit SQL.

-
Haga clic en el icono
a la derecha de la tabla destino y seleccione Edit SQL.
Sintaxis SQL
Las consultas ad hoc admiten principalmente instrucciones
SELECT. No se admiten instruccionesINSERT,UPDATE,DELETEni procedimientos almacenados.La sintaxis de la consulta debe cumplir con la sintaxis de base de datos de su origen de datos. Por ejemplo, los orígenes de datos MySQL requieren sintaxis de consulta MySQL. Quick BI no admite sintaxis específicas de bases de datos como
find()yfindone()en MongoDB. Utilice instruccionesSELECTpara consultar datos en consultas ad hoc.-
Para agregar comentarios a una consulta ad hoc, utilice el formato
-- Comment. Es obligatorio dejar un espacio después de los dos guiones (--).
A continuación se muestra un ejemplo de instrucción SQL:
SELECT area, -- Area price -- Price from company_sales_record Si combina varias tablas en una consulta ad hoc, asegúrese de utilizar correctamente los alias de tabla y de columna. La sintaxis de los alias puede variar según la base de datos.
Una consulta ad hoc no tiene límite de filas, pero no puede exceder los 65,536 caracteres. De ser necesario, divida u optimice la consulta, o bien cree varios conjuntos de datos y combínelos.
Quick BI envía el SQL del conjunto de datos a la base de datos para su ejecución. El tiempo de espera de la consulta es de 5 minutos. Si no se devuelven datos dentro de ese lapso, se produce un error de tiempo de espera.
Si una consulta supera el tiempo de espera en menos de 5 minutos, la causa podría ser una configuración de tiempo de espera en sus dispositivos de red, como un SLB, o una política de firewall que bloquea la solicitud de consulta.
Marcadores de posición
Quick BI admite dos tipos de marcadores de posición para pasar parámetros en SQL: marcadores de valor y marcadores de expresión.
|
Tipo |
Descripción |
Casos de uso |
Formato |
|
Marcador de valor |
Transmite un solo valor o un conjunto de valores desde un control de consulta en un panel. Nota
Para los marcadores de fecha, debe seleccionar un formato de fecha específico para controlar el formato del valor transmitido. |
Adecuado para la mayoría de los escenarios de paso de parámetros. |
|
|
Marcador de expresión |
Transmite una condición desde un control de consulta en un panel. |
Permite a los usuarios cambiar el método de filtro en un panel al transmitir la condición de filtro completa a la instrucción SQL. Por ejemplo, en el panel que se muestra en la siguiente figura, un usuario puede establecer la condición en |
|
Configuración
Escriba su instrucción SQL y agregue marcadores de posición según sus requisitos empresariales.
-
En la página del editor SQL, haga clic en Parameter Settings.

-
En el panel Parameter Settings, configure los marcadores de posición y haga clic en OK.

Para obtener más información sobre los elementos de configuración, consulte Create a dataset.
NotaSi utiliza un marcador de posición en una cláusula
SELECT, debe establecerle un valor predeterminado global.Por ejemplo, al crear un conjunto de datos agrega un marcador de posición llamado
profit_rangeen la cláusulaSELECT, como se muestra en el siguiente código:SELECT report_date, order_level, shipping_type,price,order_number,area, case when profit_amt< ${profit_range} then 'Loss' when profit_amt> ${profit_range} then 'Profit' else 'Break-even' end as 'Or*er Level' from company_sales_record where $expr{report_date :report_date} and $expr{order_level :order_level} and $expr{or**********************er}Si no establece un valor predeterminado, la consulta no se ejecutará.

Debe establecer un valor de consulta predeterminado para
profit_rangeen la configuración de parámetros.
Después de establecer el valor predeterminado, la consulta se ejecuta correctamente. La siguiente figura muestra el resultado:

Haga clic en Save para guardar el conjunto de datos.

-
En la barra de menú superior, haga clic en el icono
o haga clic en el icono
y seleccione Create Dashboard.
-
En la página del editor de paneles, agregue una condición de consulta y vincúlela a un marcador de posición.
Por ejemplo, al configurar una condición de consulta, puede usar una lista desplegable de selección única para filtrar area y vincularla a un marcador de valor para transmitir un solo valor.

Utilice un filtro de texto en or********erer** y vincúlelo a un marcador de expresión para transmitir una condición.

-
Cuando consulta datos en el panel, los valores de los controles de consulta se transmiten a los marcadores de posición correspondientes en su SQL.
Por ejemplo, la siguiente figura muestra las condiciones de consulta en un panel.

La instrucción SQL correspondiente es la siguiente:
SELECT * FROM company_sales_record WHERE area = 'North China' AND order_number > 100Ejemplo de uso de marcadores de posición:
SELECT * FROM tablename WHERE area in ('$val{area_ph}') -- Text type, multi-select AND name = '$val{name_ph}' -- Text type, single-select AND number = $val{number_ph} -- Numeric type AND report_date > '$val{report_date_ph.get(0)}' -- Date type, get the start date of the date range picker AND report_date < '$val{report_date_ph.get(1)}' -- Date type, get the end date of the date range picker
Para obtener más información sobre los casos de uso de marcadores de posición, consulte Placeholders.
Compatibilidad con versiones anteriores:
Formato heredado para marcadores de valor (anteriormente placeholders): ${placeholder_name}
Formato heredado para marcadores de expresión (anteriormente parameters): ${physical_field_name:parameter_name}
