// 01 — Lista nombres de empleados
SELECT nombre FROM empleado;
// 02 — Empleados con salario menor de 3000
SELECT * FROM empleado
WHERE salario < 3000;
// 03 — Los 3 empleados con mejor salario
SELECT nombre, salario FROM empleado
ORDER BY salario DESC
LIMIT 3;
// 04 — Nombres de departamentos en mayúsculas
SELECT UPPER(nombre) FROM departamento;
// 05 — Nº de empleados por departamento (incluye los que no tienen ninguno)
SELECT d.nombre, COUNT(e.id) AS total_empleados
FROM departamento d
LEFT JOIN empleado e ON d.id = e.id_departamento
GROUP BY d.id, d.nombre;
// 06 — Salario medio por departamento, solo si media mayor de 3000
SELECT id_departamento, AVG(salario) AS media
FROM empleado
GROUP BY id_departamento
HAVING AVG(salario) > 3000;
// 07 — Total salarios de empleados con apellido García
SELECT SUM(salario) AS total
FROM empleado
WHERE nombre LIKE '%García%';
// 08 — Departamentos con más de 1 empleado
SELECT id_departamento, COUNT(*) AS total
FROM empleado
GROUP BY id_departamento
HAVING COUNT(*) > 1;
// 09 — Media y máximo de salarios
SELECT AVG(salario) AS media, MAX(salario) AS maximo
FROM empleado;
// 10 — Empleados en Informática o Ventas con salario mayor de 3000
SELECT e.nombre, e.salario, d.nombre AS departamento
FROM empleado e
INNER JOIN departamento d ON e.id_departamento = d.id
WHERE d.nombre IN ('Informática','Ventas')
AND e.salario > 3000;
// 11 — Contratados antes de 2025-01-01 con salario menor de 3500
SELECT * FROM empleado
WHERE fecha_ingreso < '2025-01-01'
AND salario < 3500;
// 12 — Días desde contratación para empleados en Marketing o RRHH
SELECT e.nombre,
DATEDIFF(CURDATE(), e.fecha_ingreso) AS dias
FROM empleado e
INNER JOIN departamento d ON e.id_departamento = d.id
WHERE d.nombre IN ('Marketing','Recursos Humanos');
// 13 — Nombre termina en 'a' y contratados después de marzo 2025
SELECT * FROM empleado
WHERE nombre LIKE '%a'
AND fecha_ingreso > '2025-03-31';
// 14 — Salario medio de contratados en 2025 en Informática
SELECT AVG(e.salario) AS media
FROM empleado e
INNER JOIN departamento d ON e.id_departamento = d.id
WHERE d.nombre = 'Informática'
AND YEAR(e.fecha_ingreso) = 2025;
// 15 — Empleados con salario mayor que la media del departamento de Informática
SELECT nombre, salario FROM empleado
WHERE salario > (
SELECT AVG(e2.salario)
FROM empleado e2
INNER JOIN departamento d
ON e2.id_departamento = d.id
WHERE d.nombre = 'Informática'
);