En este módulo, exploraremos cómo SQL se aplica en situaciones del mundo real. Veremos ejemplos prácticos que ilustran cómo las consultas SQL pueden resolver problemas comunes en diversas industrias. Este conocimiento te ayudará a entender mejor la utilidad de SQL y a aplicar tus habilidades en contextos profesionales.
- Análisis de Ventas en Comercio Electrónico
Descripción del Caso
Una tienda en línea quiere analizar sus datos de ventas para identificar productos populares, tendencias de compra y comportamientos de los clientes.
Consultas Clave
a. Identificar los productos más vendidos
SELECT product_id, COUNT(*) AS total_sales FROM sales GROUP BY product_id ORDER BY total_sales DESC LIMIT 10;
Explicación:
SELECT product_id, COUNT(*) AS total_sales
: Selecciona el ID del producto y cuenta el número de ventas.FROM sales
: De la tabla de ventas.GROUP BY product_id
: Agrupa los resultados por ID de producto.ORDER BY total_sales DESC
: Ordena los resultados por el total de ventas en orden descendente.LIMIT 10
: Limita los resultados a los 10 productos más vendidos.
b. Analizar las ventas por mes
SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month, SUM(total_amount) AS total_sales FROM sales GROUP BY month ORDER BY month;
Explicación:
SELECT DATE_FORMAT(sale_date, '%Y-%m') AS month, SUM(total_amount) AS total_sales
: Formatea la fecha de venta para agrupar por mes y suma el monto total de ventas.FROM sales
: De la tabla de ventas.GROUP BY month
: Agrupa los resultados por mes.ORDER BY month
: Ordena los resultados por mes.
c. Identificar clientes recurrentes
SELECT customer_id, COUNT(*) AS purchase_count FROM sales GROUP BY customer_id HAVING purchase_count > 1 ORDER BY purchase_count DESC;
Explicación:
SELECT customer_id, COUNT(*) AS purchase_count
: Selecciona el ID del cliente y cuenta el número de compras.FROM sales
: De la tabla de ventas.GROUP BY customer_id
: Agrupa los resultados por ID de cliente.HAVING purchase_count > 1
: Filtra para mostrar solo clientes con más de una compra.ORDER BY purchase_count DESC
: Ordena los resultados por el número de compras en orden descendente.
- Gestión de Recursos Humanos
Descripción del Caso
Una empresa quiere gestionar y analizar los datos de sus empleados, incluyendo la duración del empleo, los departamentos y los salarios.
Consultas Clave
a. Calcular la duración del empleo de cada empleado
Explicación:
SELECT employee_id, DATEDIFF(CURDATE(), hire_date) AS days_employed
: Selecciona el ID del empleado y calcula la diferencia en días entre la fecha actual y la fecha de contratación.FROM employees
: De la tabla de empleados.
b. Promedio de salario por departamento
Explicación:
SELECT department_id, AVG(salary) AS average_salary
: Selecciona el ID del departamento y calcula el salario promedio.FROM employees
: De la tabla de empleados.GROUP BY department_id
: Agrupa los resultados por ID de departamento.
c. Identificar empleados con salarios superiores a la media
Explicación:
SELECT employee_id, salary
: Selecciona el ID del empleado y su salario.FROM employees
: De la tabla de empleados.WHERE salary > (SELECT AVG(salary) FROM employees)
: Filtra para mostrar solo empleados con salarios superiores al salario promedio.
- Análisis de Datos en Redes Sociales
Descripción del Caso
Una empresa de redes sociales quiere analizar la actividad de los usuarios, incluyendo publicaciones, comentarios y reacciones.
Consultas Clave
a. Contar el número de publicaciones por usuario
Explicación:
SELECT user_id, COUNT(*) AS post_count
: Selecciona el ID del usuario y cuenta el número de publicaciones.FROM posts
: De la tabla de publicaciones.GROUP BY user_id
: Agrupa los resultados por ID de usuario.ORDER BY post_count DESC
: Ordena los resultados por el número de publicaciones en orden descendente.
b. Identificar las publicaciones más comentadas
SELECT post_id, COUNT(*) AS comment_count FROM comments GROUP BY post_id ORDER BY comment_count DESC LIMIT 10;
Explicación:
SELECT post_id, COUNT(*) AS comment_count
: Selecciona el ID de la publicación y cuenta el número de comentarios.FROM comments
: De la tabla de comentarios.GROUP BY post_id
: Agrupa los resultados por ID de publicación.ORDER BY comment_count DESC
: Ordena los resultados por el número de comentarios en orden descendente.LIMIT 10
: Limita los resultados a las 10 publicaciones más comentadas.
c. Analizar las reacciones por tipo
SELECT reaction_type, COUNT(*) AS reaction_count FROM reactions GROUP BY reaction_type ORDER BY reaction_count DESC;
Explicación:
SELECT reaction_type, COUNT(*) AS reaction_count
: Selecciona el tipo de reacción y cuenta el número de reacciones.FROM reactions
: De la tabla de reacciones.GROUP BY reaction_type
: Agrupa los resultados por tipo de reacción.ORDER BY reaction_count DESC
: Ordena los resultados por el número de reacciones en orden descendente.
Conclusión
En esta sección, hemos explorado cómo SQL puede aplicarse en situaciones del mundo real a través de ejemplos prácticos en comercio electrónico, gestión de recursos humanos y análisis de redes sociales. Estas consultas te proporcionan una base sólida para abordar problemas comunes en diversas industrias utilizando SQL. En el siguiente módulo, profundizaremos en las mejores prácticas para escribir y optimizar 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