Volver a la lista de artículos Artículos
Lectura de 11 minutos

Estas consultas SQL le ayudarán con el análisis de datos

¿Necesita agilizar sus tareas diarias de análisis de datos? Este artículo explica cómo pueden ayudarle las consultas SQL básicas.

Si estás planeando una carrera empresarial o cualquier campo que implique trabajar con datos, seguro que te has topado con SQL, o Lenguaje de Consulta Estructurado. SQL se desarrolló por primera vez en la década de 1970 y sigue siendo el estándar del sector para las interacciones con bases de datos. Puede que muchos de ustedes ya hayan decidido aprender este lenguaje, dado lo potente que es. O tal vez se pregunte si merece la pena aprenderlo.

SQL es, sin duda, una de las habilidades más valiosas para los buscadores de empleo. Para puestos como analista de datos o ingeniero de datos, SQL es el pan de cada día. En otros puestos, puede no parecer tan necesario. Sin embargo, creo firmemente que aprender SQL te da una ventaja a la hora de trabajar con datos que hará que tus decisiones empresariales sean más sólidas. Te dará la capacidad de analizar cómodamente grandes volúmenes de datos y presentar tus resultados de forma sucinta a cualquier audiencia.

En este artículo, cubriré las consultas y construcciones SQL básicas que te ayudarán a comenzar con tus necesidades de análisis de datos. Pero antes de entrar en materia, permíteme explicarte qué es SQL y sus aplicaciones generales.

¿Qué es SQL?

SQL es un lenguaje estándar para acceder y manipular bases de datos. En pocas palabras, te ayuda a "hablar" con tu base de datos.

Puedes utilizarlo para recuperar información ya almacenada en la base de datos, crear nuevas tablas y almacenar o actualizar datos según sea necesario. Suena sencillo, ¿verdad? Pues sí. Pero ahí reside su poder: Es sencillo, pero produce resultados muy útiles.

Lasorganizaciones que siguen un enfoque centrado en los datos para sus decisiones empresariales prosperan. Y si presentas tus ideas utilizando el análisis de datos, es mucho más probable que consigas la aprobación de las partes interesadas. De hecho, todas las empresas necesitan el análisis de datos de una forma u otra para crecer.

SQL ayuda a que este proceso de análisis de datos sea fluido. Se puede utilizar para innumerables aplicaciones relacionadas con los datos, independientemente del ámbito (tecnología, recursos humanos, finanzas, marketing, ventas ) o del tamaño de la empresa. Por ejemplo, SQL puede ayudarle a

  • Analizar los datos de los clientes y generar perspectivas relacionadas con su comportamiento.
  • Analizar los datos de PnL para descubrir los principales responsables de los costes.
  • Realizar análisis financieros generales.
  • Comprender qué departamentos tienen las nóminas/plantilla más caras.
  • Encuentre las áreas de sus operaciones con más errores o ineficiencias.
  • Identifique a sus vendedores, tiendas, ubicaciones, regiones, etc. con mejor rendimiento.
  • Analice los cuellos de botella en su sitio web y otras tareas relacionadas con los datos.

Por supuesto, estos son sólo algunos ejemplos. En realidad, esta lista es casi interminable. Si eres propietario o gerente de una empresa, puede que incluso quieras que tus empleados aprendan SQL o incorporar cursos de SQL en tu proceso de incorporación. Como mínimo, probablemente querrá aprender SQL usted mismo para poder tomar decisiones basadas en datos.

Ahora que tiene una idea de lo que es SQL y cómo se puede utilizar, vamos a sumergirnos en algunas consultas básicas para empezar en sus tareas de análisis de datos.

Construcciones y Consultas SQL Básicas

Existen muchas más cláusulas y funciones SQL de las que podemos cubrir en este artículo, pero las siguientes son la base de la mayoría de las consultas SQL.

Además, los ejemplos que se citan aquí se basan en un conjunto de datos limitado. En realidad, usted trabajará con miles de filas y muchas tablas. No te preocupes; las construcciones siguen siendo las mismas independientemente de la cantidad de datos. Estas consultas básicas funcionarán en cualquier tabla de base de datos. De hecho, uno de los principales factores diferenciadores de SQL es la escalabilidad, que lo distingue de Excel y otras herramientas similares.

Estas son las partes básicas de una consulta SQL:

1. SELECT y FROM

La palabra clave SELECT se utiliza para recuperar datos de la base de datos. Puede especificar los nombres de las columnas (es decir, el tipo de datos que desea ver, como el nombre del cliente o la edad), o puede ver todos los datos de la tabla.

La palabra clave FROM especifica la(s) tabla(s) de la(s) que se deben recuperar los datos. Por ejemplo, supongamos que desea obtener una lista de todos los clientes de su base de datos con su nombre e información de correo electrónico. Esta información se encuentra en la tabla Customers que se muestra a continuación:

Customer_IDCustomer_NameEmailCityCountryAgeSex
1211Antonioxxxx@xxxx.comParisFR32Male
1212Paulineyyyy@yyyy.comLondonUK42Female
1213Matteozzzz@zzzz.comNew YorkUS28Male
1214Sethaaa@bb.comSydneyAU32Male
1215Agathabbb@ccc.comWashington DCUS24Female

Esta es la consulta que utilizaríamos para obtener una lista de todos los nombres de clientes con sus direcciones de correo electrónico:

SELECT Customer_Name, Email
FROM Customers;

Y la salida:

Customer_NameEmail
Antonioxxxx@xxxx.com
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Sethaaa@bb.com
Agathabbb@ccc.com

Puede obtener más información sobre SELECT en el curso SQL para principiantes y en el artículo How Do You Write a SELECT Statement in SQL, que incluye muchos ejemplos.

2. DONDE

Suponga que dirige un sitio web de comercio electrónico que tiene una promoción para clientes de EE.UU.. En este caso, desea enviar el correo electrónico sólo a los clientes de EE.UU.; la lista que desea seleccionar sólo debe tener clientes de EE.UU.. Aquí es cuando puede utilizar la cláusula WHERE.

Por lo tanto, si utiliza esta consulta ...

SELECT Customer_Name, Email
FROM Customers
WHERE Country =  'US';

... obtendrá estos resultados:

Customer_NameEmail
Matteozzzz@zzzz.com
Agathabbb@ccc.com

La cláusula WHERE se utiliza para filtrar filas específicas basadas en el valor de una o más columnas (en este caso, es la columna Country, que no se muestra en los resultados).

Supongamos que sólo desea listar mujeres de Estados Unidos. Puede filtrar por múltiples condiciones en WHERE si utiliza la palabra clave AND:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
AND Sex = 'FEMALE';

Este es el resultado:

Customer_NameEmail
Agathabbb@ccc.com

En la consulta anterior, el valor de Country y Sex de cada fila se evalúa con las condiciones de la cláusula WHERE. Sólo se devolverán las filas en las que ambas condiciones sean verdaderas. Si desea obtener los resultados cuando una (o cualquiera) de las condiciones de WHERE sea verdadera, utilice la palabra clave OR:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
OR Sex = 'FEMALE';

Esto selecciona todos los clientes mujeres así como todos los clientes que viven en EE.UU.. Observe la diferencia en los resultados:

Customer_NameEmail
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Agathabbb@ccc.com

¿Necesita más recursos sobre la cláusula WHERE? Consulte estos artículos:

3. ORDENAR POR

Digamos que tienes otra tabla en tu base de datos llamada Orders tabla.

Order_IdItemQuantityCustomer_IdTotal_Value
23A62411212$100
22Ae3431213$210
13A21141213$249
11AXXX41212$212

Quiere ver los pedidos más importantes y sus detalles. Una forma de hacerlo es listar los pedidos en orden descendente (10-1, Z-A) por valor. Puedes usar algo como esta consulta:

SELECT *
FROM Orders
ORDER BY Total_Value DESC;

Y obtendrías:

Order_IdItemQuantityCustomer_IdTotal_Value
13A21141213$249
11AXXX41212$212
22Ae3431213$210
23A62411212$100

El uso de un '*' después de SELECT indica al motor SQL que recupere todas las columnas de una tabla. La cláusula ORDER BY indica que los resultados se muestren en un orden determinado. Por defecto, los resultados se devuelven en orden ascendente (1-10, A-Z); sin embargo, como mencionamos explícitamente la palabra clave DESC, nuestros resultados se devuelven en orden descendente.

Si desea obtener más información, consulte la excelente Guía detallada de SQL ORDER BY.

4. CASO

Normalmente, una empresa tendrá miles de filas en la tabla Orders tabla. No siempre querrá ver el valor total de cada pedido. En su lugar, quizás quiera categorizarlos basándose en el valor o en alguna otra lógica.

Si desea categorizar los pedidos en valor "Alto" o "Bajo" - dependiendo de si el valor del pedido es superior o inferior a 150 $ - puede utilizar la construcción CASE:

SELECT Order_Id, Total_Value
       CASE WHEN Total_value > 150 THEN 'HIGH' 
            WHEN Total_value < 150 THEN 'LOW' 
            ELSE 'MEDIUM' END as Order_Category
FROM Orders;

Y esto es lo que obtendría

Order_IdTotal_ValueOrder_Category
13$249HIGH
11$212HIGH
22$210HIGH
23$100LOW

En esta consulta, cada fila es evaluada por la función CASE. A las filas se les asigna una categoría basada en la primera condición (es decir, WHEN .. THEN ..) que se evalúa como verdadera. Dado que los pedidos con ID 13, 11 y 22 superan los 150 $, se clasifican como "ALTO". A la orden con ID 23 se le asigna 'BAJA'.

ELSE especifica un valor de retorno por defecto si ninguna de las condiciones se evalúa como verdadera para ninguna fila.

En el blog LearnSQL.es, tenemos varios artículos interesantes sobre el uso de CASE en consultas SQL. Éstos son algunos de ellos:

5. GRUPO POR

A menudo, para generar información a partir de grandes conjuntos de datos, es posible que queramos agrupar elementos similares. Podemos utilizar esta información para tomar decisiones informadas; agrupar los datos nos ayuda a encontrar patrones, comportamientos o métricas. Esta agrupación se denomina agregación y puede realizarse con la cláusula GROUP BY de SQL.

Generalmente se utiliza una función para calcular la métrica de grupo. Las funciones de agregación más utilizadas son SUM(), COUNT()AVG(), MAX() y MIN(). Con ellas puede hacer muchas cosas, por ejemplo, calcular los gastos totales de un departamento o contar el número de empleados de cada ubicación.

Supongamos que en su empresa realiza una oferta por la que envía un regalo gratuito al cliente que más gaste en su sitio web. Puede utilizar la cláusula SQL GROUP BY para obtener el cliente que más gasta en términos del valor total del pedido. Esta es la consulta:

SELECT Customer_Id, SUM(Total_Value)
FROM Orders
GROUP BY Customer_Id
ORDER BY 2 DESC;

Este es el resultado:

Customer_IdSUM(Total_Value)
1213$459
1212$312

Claramente, su cliente principal es Customer_Id 1213.

La consulta funciona seleccionando primero todos los valores únicos de Customer_Id y luego utilizando GROUP BY para encontrar la suma total agregada de cada uno (es decir, el valor total de todos sus pedidos). La cláusula ORDER BY 2 DESC muestra los resultados en orden decreciente por SUM(Total_Value).

Para obtener más información sobre GROUP BY en el análisis de datos, consulte ¿Qué es GROUP BY en SQL?

6. JOIN

En el ejemplo anterior, hemos encontrado el Customer_id del cliente que más ha gastado. Pero la tabla Orders Pero la tabla no almacena ninguna otra información sobre el cliente, como el nombre o los datos de comunicación. Tendría que escribir otra consulta en la tabla Customers para recuperar los datos necesarios, o simplemente utilizar JOIN.

La función JOIN de SQL le permite seleccionar información de varias tablas en una sola consulta. Normalmente, conectará dos tablas basándose en uno o más valores de columna comunes a ambas tablas.

En nuestro caso podemos utilizar Customer_Id como campo común. Se unirán las tablas Customers y Orders tablas:

SELECT b.Customer_Name, b.Email, a.Customer_Id, SUM(Total_Value)
FROM Orders a
JOIN Customers b
ON a.Customer_id = b.Customer_Id
GROUP BY b.Customer_Name, b.Email, a.Customer_Id
ORDER BY 4 DESC;

Este es el resultado:

Customer_NameEmailCustomer_IdSUM(Total_Value)
Matteozzzz@zzzz.com1213$459
Paulineyyyy@yyyy.com1212$312

Ahora la consulta también devuelve los datos del cliente que necesitaba. Funciona comparando los campos Customer_Id de ambas tablas y recuperando sólo las filas en las que los valores coinciden. Observe que los identificadores de cliente 1211, 1214 y 1215 no aparecen en los resultados; no había filas coincidentes en la tabla Orders para estos valores.

Si desea mostrar todos los valores - incluso aquellos que no tienen una coincidencia correspondiente en la otra tabla - puede utilizar algo llamado OUTER JOIN. Las uniones pueden ser algo difíciles de entender, pero son uno de los conceptos más importantes en SQL. No dude en consultar este curso en Tipos de JOIN en SQL. Ofrece 93 ejercicios que cubren todos los tipos de JOINs (hay varios).

Próximos Pasos para Aprender Análisis de Datos SQL

Espero que estas consultas te hayan dado suficientes ideas para empezar con el análisis de datos usando SQL. Si no entiendes las consultas perfectamente, no te preocupes. Puedes seguir nuestro cursoSQL para principiantes para practicarlas, o nuestra completa ruta de aprendizajeCurso completo de SQL para obtener una visión completa de lo que puede hacer este lenguaje. El objetivo final no es sólo aprender SQL, sino utilizarlo en tu trabajo diario y desarrollar el hábito de utilizar el análisis de datos para tomar decisiones.

Los ejemplos que te he mostrado son, por supuesto, muy sencillos. Sólo quería que entendieras los conceptos principales y vieras lo fácil que es crear consultas SQL. Cuando llegue el momento, aprenderás a crear consultas más sofisticadas. Te facilitarán el trabajo y puede que incluso despierten la admiración general de tus colegas (o jefe). Saber SQL es genial

Una vez que hayas aprendido los fundamentos de SQL, hazte estas preguntas cuando prepares cualquier decisión empresarial:

  1. ¿Qué datos necesito para respaldar o ayudar a mi decisión?
  2. ¿Tengo ya esos datos en mi base de datos?
  3. En caso afirmativo, ¿cómo recupero y presento los datos para que me ayuden a tomar mi decisión?

Tener en cuenta los datos es un rasgo que se puede inculcar con la práctica. Así que sigue practicando y aprendiendo.