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.

  1. 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.

  1. 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

SELECT employee_id, DATEDIFF(CURDATE(), hire_date) AS days_employed
FROM employees;

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

SELECT department_id, AVG(salary) AS average_salary
FROM employees
GROUP BY department_id;

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

SELECT employee_id, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

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.

  1. 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

SELECT user_id, COUNT(*) AS post_count
FROM posts
GROUP BY user_id
ORDER BY post_count DESC;

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

Módulo 3: Trabajando con múltiples tablas

Módulo 4: Filtrado avanzado de datos

Módulo 5: Manipulación de datos

Módulo 6: Funciones avanzadas de SQL

Módulo 7: Subconsultas y consultas anidadas

Módulo 8: Índices y optimización de rendimiento

Módulo 9: Transacciones y concurrencia

Módulo 10: Temas avanzados

Módulo 11: SQL en la práctica

Módulo 12: Proyecto final

© Copyright 2024. Todos los derechos reservados