Consultas Subconsulta en SQL para Análisis de Datos

SQLBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderá a utilizar subconsultas para recuperar información relevante de las tablas de empleados (emp) y departamentos (dept) en la base de datos de personal. Practicará escribir consultas SQL complejas para acceder y analizar datos de múltiples tablas.

👀 Vista previa

Imagen de vista previa de la consulta SQL

🎯 Tareas

En este proyecto, aprenderá:

  • Cómo iniciar el servidor MySQL e importar la base de datos de personal
  • Cómo utilizar una subconsulta para encontrar al empleado con el salario más alto
  • Cómo calcular la proporción de empleados en un departamento específico en comparación con toda la empresa
  • Cómo recuperar todos los empleados que trabajan en una ubicación específica utilizando una subconsulta
  • Cómo encontrar empleados cuyo salario excede el salario promedio de su departamento

🏆 Logros

Después de completar este proyecto, podrá:

  • Comprender el concepto y el uso de subconsultas en SQL
  • Escribir consultas SQL complejas que combinen datos de múltiples tablas
  • Analizar y extraer información significativa de una base de datos utilizando subconsultas
  • Demostrar sus habilidades de SQL en un escenario práctico del mundo real

Iniciar MySQL y Importar la Base de Datos

En este paso, aprenderá a iniciar el servidor MySQL e importar la base de datos de personal.

  1. Inicie el servidor MySQL utilizando el comando sudo sin ninguna contraseña:
sudo service mysql start
  1. Acceda a la línea de comandos de MySQL:
sudo mysql
  1. Importe los datos del archivo personnel.sql a la base de datos MySQL:
SOURCE /home/labex/project/personnel.sql;

Esto creará la base de datos personnel y la llenará con las tablas y datos necesarios.

✨ Revisar Solución y Practicar

Consultar al Empleado con el Salario más Alto

En este paso, aprenderá a utilizar una subconsulta para recuperar el nombre del empleado con el salario más alto.

  1. Cree un nuevo archivo llamado subquery.sql en el directorio /home/labex/project.
  2. En el archivo subquery.sql, agregue la siguiente consulta SQL:
-- Consulta para recuperar el (los) empleado(s) con el salario más alto
SELECT ename AS `Nombre` FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);

Esta consulta primero encuentra el salario máximo en la tabla emp utilizando una subconsulta, y luego selecciona el ename (nombre del empleado) de los empleados que tienen ese salario máximo.

✨ Revisar Solución y Practicar

Calcular la Proporción de Empleados en el Departamento 10

En este paso, aprenderá a utilizar una subconsulta para calcular la proporción de empleados en el departamento 10 en comparación con toda la empresa.

  1. En el archivo subquery.sql, agregue la siguiente consulta SQL:
-- Consulta para calcular la proporción de empleados en el departamento 10
SELECT d.dname AS Departamento, COUNT(e.empno) / (SELECT COUNT(empno) FROM emp) AS Proporción
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE d.deptno = 10;

Esta consulta primero cuenta el número de empleados en el departamento 10 uniendo las tablas emp y dept. Luego divide este recuento por el número total de empleados en la tabla emp (utilizando una subconsulta) para calcular la proporción.

✨ Revisar Solución y Practicar

Recuperar Empleados que Trabajan en Nueva York

En este paso, aprenderá a utilizar una subconsulta para recuperar a todos los empleados que trabajan en la ubicación de Nueva York.

  1. En el archivo subquery.sql, agregue la siguiente consulta SQL:
-- Consulta para recuperar a todos los empleados que trabajan en Nueva York
SELECT e.*
FROM emp e
JOIN dept d ON e.deptno = d.deptno
WHERE d.loc = 'NUEVA YORK';

Esta consulta une las tablas emp y dept para recuperar a los empleados cuyo departamento está ubicado en Nueva York.

✨ Revisar Solución y Practicar

Recuperar Empleados con Salarios que Exceden la Media del Departamento

En este paso, aprenderá a utilizar una subconsulta para recuperar a los empleados cuyo salario es mayor que la media salarial en su respectivo departamento.

  1. En el archivo subquery.sql, agregue la siguiente consulta SQL:
-- Consulta para recuperar a los empleados cuyo salario es mayor que la media salarial en su respectivo departamento
SELECT e.* FROM emp e
JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno) AS avg
ON e.deptno = avg.deptno
WHERE e.sal > avg.avg_sal;

Esta consulta primero calcula la media salarial para cada departamento utilizando una subconsulta. Luego une esta subconsulta con la tabla emp para seleccionar a los empleados cuyo salario es mayor que la media salarial en su departamento.

Después de completar estos pasos, su archivo subquery.sql debería contener todas las consultas SQL necesarias para cumplir con los requisitos del proyecto.

  1. Guarde el archivo.
  2. En el prompt de MySQL, ejecute el siguiente comando para ejecutar el script subquery.sql:
SOURCE /home/labex/project/subquery.sql;

Debería ver la siguiente salida:

SQL query execution result
✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.