3 Formas de Pivotar Datos para Tableau

En el curso de mi trabajo con Tableau, me di cuenta de
cuánto le gusta a la plataforma que los datos estén bien organizados en
filas. Por ejemplo, supongamos que tiene algunos datos de la encuesta que contienen
una sola fila para cada respuesta, luego respuestas numéricas del 1 al 5 para 5
preguntas. Por lo general, los resultados de la encuesta enumerarán cada
una de esas respuestas en columnas separadas, como esta:
Pero, datos como este a menudo pueden ser muy
difíciles de visualizar en Tableau. Sería mucho mejor si sus datos fueran
"pivotados" para verse así:
Esto le dará una medida única, que puede hacer que sus
datos sean mucho más fáciles de trabajar en Tableau. Puede reorganizar
manualmente estos datos si lo desea, pero eso es mucho trabajo. La buena
noticia es que hay varias formas en que puede pivotar sus datos automáticamente
para prepararse para la visualización en Tableau. Este blog compartirá 3
de esos métodos contigo.
Pivotando con Tableau
El método más simple es pivotar datos directamente en Tableau. Si trae sus datos no divididos a Tableau, puede seleccionar las columnas que desea pivotar, en nuestro caso, las cinco preguntas, luego haga clic con el botón derecho y seleccione "Pivotar" como se muestra a continuación. Luego puede cambiar el nombre de los campos dinámicos y los valores que desee.

Bastante genial, ¿eh? Es decir, hasta que intente
hacer esto con una fuente de datos que no sea Excel, Google Sheets o
texto. Desafortunadamente, Tableau no le permite cambiar las conexiones a
bases de datos "reales" como SQL Server y Oracle, por lo que no tiene
suerte ... ¿o no?
Pivotar con Tableau Prep
Hace un par de años, Tableau lanzó un nuevo
producto de software llamado Tableau Prep. El software está diseñado
para permitirle “preparar” rápida y fácilmente sus datos antes de visualizarlos
en Tableau. Si bien ya puede hacer parte de este trabajo de preparación de
datos en Tableau Desktop: unir tablas, pivotar columnas en filas, agrupar texto
similar, etc. de los pasos para que puedan ejecutarse fácilmente nuevamente en
el futuro, ahorrándole el tiempo de preparar sus datos manualmente.
Tableau Prep tiene una función de pivote incorporada
que le permite pivotar rápida y fácilmente sus datos desde cualquier fuente de
datos compatible con Tableau Prep, incluidos SQL Server, Oracle y muchas otras
plataformas de bases de datos.
Para pivotar nuestros datos en Tableau Prep, primero
debemos conectarnos a nuestros datos de origen. Luego agregamos un paso de
tabla dinámica. A continuación, arrastramos sobre los campos que deseamos
pivotar. Y, como paso final, podemos cambiar el nombre de los campos dinámicos.
La animación a continuación muestra los pasos.

Pivotar con SQL personalizado
Si, por alguna razón, Tableau Prep no está disponible
para usted o simplemente no desea introducir otra herramienta en su proceso,
hay una solución final que funcionará con muchas plataformas de bases de datos
importantes, incluidos SQL Server y Oracle.
Supongamos que tiene una tabla llamada Respuestas en
su base de datos SQL u Oracle que se parece a la muestra de la encuesta
mostrada anteriormente. Aquí está la declaración de creación en
SQL:
CREATE TABLE dbo.
Respuestas
(
[Encuestado]
[nvarchar](50),
[Pregunta1]
[int],
[Pregunta2]
[int],
[Pregunta3]
[int],
[Pregunta4]
[int],
[Pregunta5]
[int],
)
Tanto SQL como Oracle tienen funciones para hacer
esto. La función PIVOT de SQL / Oracle en realidad hace exactamente lo
contrario de lo que queremos: cambia las filas en columnas. Entonces, lo
que queremos es UNPIVOT. UNPIVOT hace casi exactamente lo mismo que la
función pivote de Tableau.
Comencemos mirando una simple declaración
SELECT. Para extraer los datos de la tabla Respuestas,
escribiríamos algo como esto. Nota: Estoy usando SQL Server, pero casi
todo esto se traduce en Oracle. Cuando haya diferencias, las señalaré.
SELECT Encuestado, Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5 FROM dbo.Respuestas
Esto devolverá los siguientes datos, que se parecen
bastante a nuestra hoja de cálculo original.

Sin embargo, desvincular los datos es un poco más
complejo. Aquí está el SQL
SELECT Encuestado, Pregunta, Responder
FROM
(
SELECT Encuestado, Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5 FROM dbo.Respuestas
) AS source_query
UNPIVOT
(
Responder FOR Pregunta
IN (Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5)
) AS pivot_result
Analicemos esto con un poco más de detalle. En
primer lugar, vemos nuestra declaración de selección original cerca de la parte
superior, comenzando en la cuarta línea:
SELECT Encuestado, Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5 FROM dbo.Respuestas
Esto extraerá nuestro conjunto de datos inicial
directamente de la tabla. Observe que esta subconsulta se alias
como "source_query". Puede alias la subconsulta con el nombre
que elija, pero debe estar allí.
A continuación vemos lo siguiente:
UNPIVOT
(
Responder FOR Pregunta
IN (Pregunta1,
Pregunta2, Pregunta3, Pregunta4, Pregunta5)
) AS pivot_result
Esto iniciará las instrucciones para desconectar la
selección anterior. Tomará el valor en cada uno de los cinco campos de
preguntas y los colocará en una sola columna llamada Respuesta . El nombre de
cada pregunta (Pregunta1, Pregunta2, etc.) se colocará en una columna
llamada Pregunta . Nuevamente, al igual que la selección
original, debemos darle un alias a esta subconsulta; en este caso, he
usado "pivot_result".
Finalmente, tenemos la primera parte de la consulta,
"SELECT
Encuestado, Pregunta, Responder FROM". Esto define qué campos se devuelven de la combinación de
las dos primeras subconsultas.
Cuando lo ejecutamos, obtenemos el siguiente
resultado, que es exactamente lo que necesitamos:

La sintaxis para Oracle es casi exactamente la misma
con una diferencia clave. En Oracle, los alias de subconsulta no son
necesarios. Entonces su declaración se vería así:
SELECT Encuestado, Pregunta, Responder
FROM
(
SELECT Encuestado, Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5 FROM dbo.Respuestas
)
UNPIVOT
(
Responder FOR Pregunta
IN (Pregunta1, Pregunta2, Pregunta3, Pregunta4, Pregunta5)
)
Ahora que hemos escrito nuestro SQL, podemos
aprovecharlo en Tableau mediante los siguientes pasos:
1) Conéctese a su base de datos en Tableau.
2) Crear una "Nueva personalización de SQL"
3) Copie y pegue el SQL documentado
anteriormente.
Con Tableau Prep, el SQL personalizado para datos
dinámicos es probablemente una solución muy específica, pero podría ser útil en
algunos casos de uso, por lo que si lo necesita, ya sabe cómo hacerlo.
¡¡Gracias por leer!!
Ken Flerlage, 3 de junio de 2018

muchas gracias,En latinoamerica hay muchas personas dentro de las organizaciones que no dominan el idioma ingles, pero necesitas capacitar. Su trabajo colabora en ese sentido.
ResponderEliminarEspero que esto te sea de ayuda. No podemos traducir todo nuestro contenido, pero intentaremos agregar algunos blogs adicionales con el tiempo.
EliminarMuchas gracias por el post y el blog. Siempre es bueno tener estos lugares para consultar dudas!!
ResponderEliminar