El análisis de datos es una de las aplicaciones más poderosas de SQL. En este módulo, aprenderás cómo utilizar SQL para extraer, transformar y analizar datos de manera efectiva. Este conocimiento es fundamental para roles como analistas de datos, científicos de datos y desarrolladores de BI (Business Intelligence).
Objetivos del Módulo
- Comprender cómo utilizar SQL para realizar análisis de datos.
- Aprender a utilizar funciones agregadas y de ventana para análisis avanzados.
- Conocer técnicas para limpiar y preparar datos.
- Realizar análisis exploratorio de datos (EDA) utilizando SQL.
Contenido del Módulo
Funciones agregadas
Las funciones agregadas son esenciales para resumir y analizar grandes conjuntos de datos. Las funciones más comunes incluyen SUM
, AVG
, COUNT
, MIN
y MAX
.
Ejemplo práctico
-- Supongamos que tenemos una tabla de ventas llamada 'sales' con las siguientes columnas: -- id, product_id, quantity, price, sale_date -- Queremos calcular el total de ventas y el promedio de ventas por producto. SELECT product_id, SUM(quantity * price) AS total_sales, AVG(quantity * price) AS average_sales FROM sales GROUP BY product_id;
Explicación
SUM(quantity * price)
: Calcula el total de ventas por producto.AVG(quantity * price)
: Calcula el promedio de ventas por producto.GROUP BY product_id
: Agrupa los resultados porproduct_id
.
Funciones de ventana
Las funciones de ventana permiten realizar cálculos sobre un conjunto de filas relacionadas sin agrupar los resultados en una sola fila. Esto es útil para cálculos como promedios móviles, sumas acumulativas, etc.
Ejemplo práctico
-- Queremos calcular la suma acumulativa de ventas por producto. SELECT product_id, sale_date, quantity * price AS sale_amount, SUM(quantity * price) OVER (PARTITION BY product_id ORDER BY sale_date) AS cumulative_sales FROM sales;
Explicación
SUM(quantity * price) OVER (PARTITION BY product_id ORDER BY sale_date)
: Calcula la suma acumulativa de ventas por producto, ordenada por fecha de venta.
Limpieza y preparación de datos
Antes de realizar cualquier análisis, es crucial limpiar y preparar los datos. Esto puede incluir la eliminación de duplicados, el manejo de valores nulos y la normalización de datos.
Ejemplo práctico
-- Queremos eliminar las filas duplicadas en la tabla 'sales'. DELETE FROM sales WHERE id NOT IN ( SELECT MIN(id) FROM sales GROUP BY product_id, sale_date, quantity, price );
Explicación
MIN(id)
: Selecciona la fila con el ID más bajo para cada grupo de duplicados.DELETE FROM sales WHERE id NOT IN (...)
: Elimina las filas que no son la primera ocurrencia de cada grupo de duplicados.
Análisis exploratorio de datos (EDA)
El EDA es el proceso de analizar conjuntos de datos para resumir sus características principales, a menudo utilizando métodos visuales. En SQL, esto puede incluir la generación de estadísticas descriptivas y la identificación de patrones.
Ejemplo práctico
-- Queremos obtener estadísticas descriptivas de las ventas. SELECT product_id, COUNT(*) AS num_sales, SUM(quantity * price) AS total_sales, AVG(quantity * price) AS average_sales, MIN(quantity * price) AS min_sale, MAX(quantity * price) AS max_sale FROM sales GROUP BY product_id;
Explicación
COUNT(*)
: Cuenta el número de ventas por producto.SUM(quantity * price)
: Calcula el total de ventas por producto.AVG(quantity * price)
: Calcula el promedio de ventas por producto.MIN(quantity * price)
: Encuentra la venta mínima por producto.MAX(quantity * price)
: Encuentra la venta máxima por producto.
Ejercicios prácticos
Ejercicio 1: Análisis de ventas por región
Descripción: Utiliza la tabla sales
y una tabla adicional regions
que contiene las columnas product_id
, region
para calcular el total de ventas por región.
Instrucción:
-- Escribe una consulta para calcular el total de ventas por región. SELECT r.region, SUM(s.quantity * s.price) AS total_sales FROM sales s JOIN regions r ON s.product_id = r.product_id GROUP BY r.region;
Ejercicio 2: Identificación de productos más vendidos
Descripción: Encuentra los 5 productos más vendidos en términos de cantidad.
Instrucción:
-- Escribe una consulta para encontrar los 5 productos más vendidos. SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id ORDER BY total_quantity DESC LIMIT 5;
Ejercicio 3: Análisis de ventas mensuales
Descripción: Calcula el total de ventas por mes.
Instrucción:
-- Escribe una consulta para calcular el total de ventas por mes. SELECT DATE_TRUNC('month', sale_date) AS sale_month, SUM(quantity * price) AS total_sales FROM sales GROUP BY sale_month ORDER BY sale_month;
Conclusión
En este módulo, hemos explorado cómo utilizar SQL para el análisis de datos, incluyendo el uso de funciones agregadas y de ventana, técnicas de limpieza y preparación de datos, y métodos para realizar análisis exploratorio de datos. Estos conocimientos te permitirán extraer información valiosa de tus datos y tomar decisiones informadas basadas en ellos.
En el próximo módulo, profundizaremos en la creación y gestión de índices para optimizar el rendimiento de tus consultas SQL.
Curso de SQL
Módulo 1: Introducción a SQL
Módulo 2: Consultas básicas de SQL
- Instrucción SELECT
- Filtrando datos con WHERE
- Ordenando datos con ORDER BY
- Limitando resultados con LIMIT
Módulo 3: Trabajando con múltiples tablas
Módulo 4: Filtrado avanzado de datos
- Usando LIKE para coincidencia de patrones
- Operadores IN y BETWEEN
- Valores NULL y IS NULL
- Agregando datos con GROUP BY
- Cláusula HAVING
Módulo 5: Manipulación de datos
Módulo 6: Funciones avanzadas de SQL
Módulo 7: Subconsultas y consultas anidadas
- Introducción a subconsultas
- Subconsultas correlacionadas
- EXISTS y NOT EXISTS
- Usando subconsultas en cláusulas SELECT, FROM y WHERE
Módulo 8: Índices y optimización de rendimiento
- Entendiendo los índices
- Creación y gestión de índices
- Técnicas de optimización de consultas
- Análisis del rendimiento de consultas
Módulo 9: Transacciones y concurrencia
- Introducción a las transacciones
- Propiedades ACID
- Instrucciones de control de transacciones
- Manejo de concurrencia