Consultas SQL con Power Pivot

Nov 19, 2020 | DATOS, Importar y transformar | 0 Comentarios

Si no tienes conocimientos de SQL, te aconsejo ver antes este post donde explico las bases de este lenguaje para hacer consultas a bases de datos: Empieza a usar SQL en 20 minutos.

¡No te pierdas ningún nuevo vídeo!

Visita mi canal de Youtube

Vimos anteriormente como importar datos desde un servidor desde Power Query usando SQL. También es posible usar SQL desde Power Pivot, clicando “De base de datos”.

Al seleccionar “De SQL Server” se abre una ventana donde insertamos el nombre del servidor y de la base de datos. Hay dos diferencias con respecto a Power Query: al insertar el nombre de un servidor podemos elegir la base de datos desde un desplegable; es obligatorio seleccionar la base de datos.

 

El siguiente paso es elegir si queremos elegir la opción de seleccionar la o las tablas desde una interfaz o desde una consulta SQL. Si elegimos la primera opción se abre una ventana donde podemos elegir una o más tablas y, además, que se importen las relaciones entre estas tablas si las tienen en el la base de datos.

Si seleccionamos la otra opción (Escribir una consulta) se abre un editor de consultas SQL donde podemos escribir la consulta. Power Pivot ofrece una interfaz para poder especificar consultas con agrupaciones, filtros y joins a través del botón “Diseño”.

Aquí podemos desglosar los datos a la izquierda. Al desglosar una tabla o vista se despliegan los campos disponibles y, al marcarlos, aparecen entre los campos seleccionados.

Para cada campo seleccionado podemos elegir si lo agrupamos o no. Recuerda lo que vimos de SQL anteriormente. Si agregamos alguna métrica (por ejemplo sumamos los pasajeros), tenemos que agrupar el resto de atributos o dimensiones. Podemos, además, añadir relaciones (si seleccionamos campos de diferentes tablas) y filtros. 

Si clicamos en “Editar como texto” podemos ver como ha quedado la consulta SQL y probar la ejecución (para comprobar que datos vamos a importar).

La otra opción es escribir directamente la consulta SQL. Ya vimos lo básico, ahora explicaré como usar SQL para anexar y combinar tablas.

Para anexar dos o más tablas es muy simple. Escribimos las dos o más consultas SQL y entre ellas utilizamos:

  • UNION ALL: une todas las filas
  • UNION: une todas las filas, pero elimina las duplicadas

Por ejemplo:

    SELECT columna1, columna2

    FROM tabla1

    UNION

    SELECT columna1, columna2

    FROM tabla2

 

Para combinar dos tablas es necesario modificar algo más el código. Aquí tienes un ejemplo de una combinación interna (inner join = sólo las filas comunes):

    SELECT tabla1.columna1,      tabla2.columna1

    FROM tabla1

    INNER JOIN tabla2

    ON tabla1.columna2 = tabla2.columna2

Notamos que después de SELECT hay que especificar de que tabla es cada columna (si tienen nombres únicos, es decir no se repiten la otra tabla, no es necesario). Después de FROM estará nuestra tabla izquierda (primera tabla). El comando INNER JOIN especifica que el tipo de combinación y le sigue la segunda tabla. En fin, después de ON tenemos los campos usados como claves para el cruce. Es posible añadir más campos relacionados utilizando AND:

ON tabla1.columna2 = tabla2.columna2 AND tabla1.columna3 = tabla2.columna3

 

Para cambiar tipo de combinación sustituimos INNER JOIN por:

  • FULL JOIN: lo llamamos “outer join”, resulta en todas las filas de las dos tablas, comunes y no comunes.
  • LEFT JOINT: todas las filas de la primera tabla y sólo las comunes de la segunda.
  • RIGHT JOIN: todas las filas de la segunda tabla y sólo las comunes de la primera.

Una vez escrita la consulta podemos dar a Validar, para comprobar que todo esté bien, y Finalizar. Si tenemos que modificar la consulta, tenemos que ir a la pestaña “Diseñar” en la barra de opciones de Power Pivot, y clicar “Propiedades de tabla”.

Si quieres profundizar más en SQL, te aconsejo Datacamp. Es una plataforma que ofrece cursos (algunos gratuitos) de varios lenguajes de programación. Además sus clases son prácticas dado que empiezas a escribir SQL directamente en la plataforma durante el curso.