¿Le ha servido de ayuda esta página?
No

Conectarse a una consulta de SQL personalizada

En la mayoría de las bases de datos puede conectarse a una consulta concreta, en lugar de conectarse a todo el conjunto de datos. Como las bases de datos presentan una sintaxis SQL algo diferente, es posible que la consulta personalizada de SQL que utilice para conectarse a una base de datos sea diferente de la que utilice para conectarse a otra base de datos. No obstante, las consultas personalizadas de SQL pueden ser útiles si sabe exactamente la información que necesita y sabe escribir consultas de SQL.

Aunque existen distintos motivos comunes por los que podría usar consultas personalizadas de SQL, puede utilizarlas para unir en filas los datos en todas las tablas, redistribuir los campos para efectuar uniones en columnas entre bases de datos cruzadas, reestructurar o reducir el tamaño de los datos para llevar a cabo análisis, etc.

Para Excel y fuentes de datos de archivos de texto, esta opción solo está disponible en libros de trabajo creados antes de Tableau Desktop 8.2 o al utilizar Tableau Desktop en Windows con la conexión heredada. Para conectarse a Excel o al archivo de texto mediante la conexión heredada, conéctese al archivo y, en el cuadro de diálogo Abrir, haga clic en el menú desplegable Abrir y, a continuación, seleccione Abrir con conexión heredada.

IMPORTANTE: a partir de Tableau 2019.1, ya no se pueden crear nuevas conexiones de texto o de Excel heredadas. Los libros de trabajo existentes creados con estas conexiones heredadas seguirán funcionando hasta 2019.2, cuando se dejará de ofrecer soporte a todas las conexiones heredadas. Consulte el documento Legacy Connection Alternatives (Alternativas a las conexiones heredadas) en la comunidad de Tableau para ver las alternativas que existen al uso de conexiones heredadas.

Conectarse a una consulta de SQL personalizada

  1. Después de conectarse a los datos, haga doble clic en la opción Nuevo SQL personalizado, en la página Fuente de datos.

  2. Escriba o pegue la consulta en el cuadro de texto.

  3. Cuando haya terminado, haga clic en Aceptar.

Cuando haya finalizado la conexión con los datos, en la cuadrícula de datos de la página Fuente de datos solo se mostrarán los campos relevantes de la consulta personalizada de SQL.

Ejemplos de consultas personalizadas de SQL

Combinar las tablas verticalmente (combinación)

Si tiene que adjuntar datos entre sí, puede utilizar la opción de unión directamente en Tableau. En los casos en los que la base de datos no admita esta opción, puede utilizar las consultas personalizadas de SQL.

Por ejemplo, supongamos que tiene las dos tablas siguientes: Noviembre y Diciembre.

Noviembre Diciembre

Puede utilizar la siguiente consulta personalizada de SQL para adjuntar la segunda tabla, Diciembre, a la primera, Noviembre:

SELECT * FROM November UNION ALL SELECT * FROM December

El resultado de la consulta que aparece en la cuadrícula de datos tiene este aspecto:

Para obtener más información sobre la opción de unión, consulte Unir los datos.

Cambiar el tipo de datos de un campo para efectuar una unión entre bases de datos cruzada

Si desea llevar a cabo una combinación entre dos tablas, el tipo de datos de los campos en los que vaya a hacer la combinación debe ser el mismo. En los casos en los que el tipo de datos de los campos son diferentes, puede utilizar las consultas personalizadas de SQL para cambiar el tipo de datos (es decir, adaptar el campo) antes de efectuar la combinación.

Por ejemplo, imagínese que quiere combinar dos tablas, Main y Sub, con los campos Root e ID, respectivamente. El campo Root es un tipo de número y el campo ID, un tipo de cadena. Puede utilizar la siguiente consulta personalizada de SQL para cambiar el tipo de datos de Root de un número a una cadena, de modo que pueda unir las tablas Main y Sub con los campos Root e ID.

SELECT [Main].[Root] AS [Root_Number]
CAST([Main].[Root] AS INT] AS [Root_String]
FROM [Main]

En el resultado de esta consulta se muestra el campo Root original y el campo Root como cadena.

Para obtener más información sobre las combinaciones y las combinaciones de bases de datos cruzadas, consulte Combinar datos.

Reducir el tamaño de los datos

A la hora de trabajar con conjuntos de datos grandes, en ocasiones se puede ahorrar tiempo si se reduce primero el tamaño de estos.

Por ejemplo, supongamos que tiene una tabla de grandes dimensiones llamada FischerIris. Puede utilizar la siguiente consulta personalizada de SQL para recuperar las columnas y registros especificados, con lo que se reduce el tamaño del conjunto de datos al que se conecta desde Tableau.

SELECT
[FischerIris].[Species] AS [Species],
[FischerIris].[Width] AS [Petal Width],
COUNT([FischerIris].[ID]) AS [Num of Species]
FROM [FischerIris]
WHERE [FischerIris].[Organ] = 'Petal'
AND [FischerIris].[Width] > 15.0000
GROUP BY [FischerIris].[Species], [FischerIris].[Width]

Reestructurar los datos (pivote)

En algunos casos es posible que esté trabajando con una tabla que se debe reestructurar antes de llevar a cabo un análisis. Aunque este tipo de tarea se puede efectuar directamente en Tableau utilizando opciones como el pivote, es posible que la base de datos no lo admita. En tal caso, puede utilizar SQL personalizado.

Por ejemplo, supongamos que tiene la siguiente tabla:

Para modificar la estructura y optimizar los datos para analizarlos en Tableau, puede utilizar la siguiente consulta personalizada de SQL:

SELECT Table1.Season ID AS [Season ID],
Table1.Items - Don't like AS [Quantity],
"Don't Like" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table.Items - Defective AS [Quantity],
"Defective" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table1.Items - Too big AS [Quantity],
"Too Big" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS Season ID,
Table1.Items - Too small AS [Quantity]
"Too Small" AS [Reason]
FROM Table1

El resultado de la consulta que aparece en la cuadrícula de datos tiene este aspecto:

Para obtener más información sobre la opción de pivote, consulte Pivotar datos de columnas a filas.

Combinar (unir) y agregar los datos

Si tiene que combinar tablas y agregar los datos, puede utilizar tanto opciones de unión como de tipo de agregación predeterminadas directamente en Tableau. En otros casos, es posible que deba utilizar las consultas personalizadas de SQL.

Por ejemplo, supongamos que tiene las dos tablas siguientes: Pedidos y Proveedores.

Pedidos Proveedores

Puede utilizar la siguiente consulta personalizada de SQL para buscar un recuento en el número de pedidos y efectuar una combinación a la izquierda en las tablas Pedidos y Proveedores:

SELECT Vendors.Name,COUNT(Orders.Order) AS Number Of Orders
FROM Orders
LEFT JOIN Vendors
ON Orders.VendorID=Vendors.VendorID
GROUP BY Name;

El resultado de la consulta será algo parecido a esto:

Para obtener más información sobre las uniones, consulte Combinar datos.

Se producen errores al hacer referencia a columnas duplicadas

Si la consulta personalizada de SQL hace referencia a columnas duplicadas, es posible que reciba errores al intentar utilizar en Tableau una de las columnas en el análisis. Esto sucederá aunque la consulta sea válida. Veamos, por ejemplo, la siguiente consulta:

SELECT * FROM authors, titleauthor WHERE authors.au_id = titleauthor.au_id

La consulta es válida, pero el campo au_id es ambiguo, ya que en este caso existe en la tabla “authors” y en la tabla “titleauthor”. Tableau se conectará con la consulta, pero usted obtendrá un error siempre que trate de usar el campo au_id . Esto se debe a que Tableau no sabe a qué tabla hace referencia.

Nota: es una práctica recomendada definir alias de columna con una cláusula AS siempre que sea posible en una consulta SQL personalizada. El motivo es que cada base de datos tiene sus propias reglas a la hora de generar de forma automática un nombre de columna cuando no se utiliza un alias.

Editar una consulta personalizada de SQL

Para editar una consulta SQL personalizada

  1. En la página de fuente de datos, en el lienzo, sitúe el cursor sobre la tabla personalizada de SQL hasta que se muestre la flecha.

  2. Haga clic en esa flecha y seleccione Editar SQL personalizado.

  3. En el cuadro de diálogo, modifique la consulta SQL personalizada.

Para cambiar el nombre de una consulta SQL personalizada

Cuando se arrastra una consulta SQL personalizada al lienzo, Tableau proporciona un nombre predeterminado: Consulta SQL personalizada, Consulta SQL personalizada1, etc. Puede cambiar el nombre predeterminado a otro más significativo.

  1. En la página de fuente de datos, en el lienzo, haga doble clic en el nombre predeterminado de consulta, por ejemplo, Consulta SQL personalizada.

  2. Escriba el nombre que desee utilizar para la consulta SQL personalizada.

Utilizar parámetros en una consulta de SQL personalizada

Puede utilizar parámetros en una declaración de consulta de SQL personalizada para reemplazar un valor constante por un valor dinámico. A continuación, podrá actualizar el parámetro en el libro de trabajo para modificar la conexión. Por ejemplo, puede establecer una conexión con una consulta de SQL personalizada que proporcione datos del tráfico web de una página determinada que se especifica mediante un valor de pageID. En lugar de utilizar un valor constante para pageID en la consulta de SQL, puede insertar un parámetro. Después de finalizar la conexión, podrá ver un control de parámetro en el libro de trabajo. Utilice el control de parámetros para cambiar el valor de pageID y extraer datos de cada página que le interese sin tener que editar o duplicar la conexión.

En Tableau Desktop, puede crear un parámetro directamente desde el cuadro de diálogo “SQL personalizado” o usar cualquier parámetro incluido en el libro de trabajo. Si crea un nuevo parámetro, lo encontrará disponible para su uso en el libro de trabajo como cualquier otro parámetro. Consulte Crear parámetros para obtener más información.

Para creación web (en Tableau Online o Tableau Server), puede usar un parámetro existente publicado desde Tableau Desktop. No puede crear un parámetro nuevo en la creación web.

Para añadir un parámetro a una consulta de SQL personalizada

  1. En la página de fuente de datos, en el lienzo, sitúe el ratón sobre la tabla hasta que se muestre el icono Editar y haga clic en él.

  2. En la parte inferior del cuadro de diálogo, haga clic en Insertar parámetro.

  3. Seleccione un valor constante en la declaración SQL y luego, en el menú desplegable, Insertar parámetro, seleccione el parámetro que desea usar. Si todavía no ha creado ningún parámetro, seleccione Crear parámetro nuevo. Siga las instrucciones de la sección Crear parámetros para crear un parámetro.

Nota: Los parámetros solo pueden reemplazar valores literales. No pueden reemplazar expresiones ni identificadores, como nombres de tablas.

En el siguiente ejemplo, la consulta personalizada de SQL indica todos los pedidos marcados con prioridad urgente. En la declaración de consulta personalizada de SQL, la prioridad de los pedidos es el valor constante. Si desea cambiar la conexión para ver los pedidos con prioridad Alta, debe modificar la fuente de datos.

En lugar de crear y mantener muchas variantes de la misma consulta, puede reemplazar el valor constante de prioridad de los pedidos por un parámetro. El parámetro debe contener todos los valores posibles de Prioridad de pedido.

Después de crear un parámetro, puede insertarlo en la declaración SQL para reemplazar el valor constante.

Cuando termine de modificar la conexión, el nuevo parámetro se mostrará en el área Parámetros, en la parte inferior del panel Datos, y el control de parámetros se mostrará en la parte derecha de la vista. La conexión se actualiza a medida que selecciona diferentes valores.

Nota: si está utilizando un extracto, debe actualizarlo para que se reflejen los cambios en el parámetro. Publicar una fuente de datos que utiliza parámetros SQL personalizados incluye los parámetros. Los parámetros se transfieren a los libros de trabajo que se conecten a la fuente de datos.

Consulte también

Usar SQL personalizado y RAWSQL para realizar análisis espaciales avanzados