Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2. Calcula cuanto ganan en total cada uno de los grupos de empleados clasificados por tipo de
trabajo (Job_id)
3. Calcula el máximo sueldo para cada uno de los grupos de empleados clasificados por tipo de
trabajo (Job_id)
4. Calcula el sueldo medio de los empleados de cada departamento y después el sueldo medio de los
empleados por tipo de trabajo.
Select department_id, avg (salary)
From employees
Group by department_id
7. Selecciona cuanto ganan en total todos los empleados que son Stock Manager (job_id=
ST_MAN)
8. Visualiza los nombres de los continentes con más de seis paises en la tabla countries
9 Visualiza el nº de paises que tienen cada uno de los continentes cuyo identificador de region es 1,
2o3
10. En la tabla empleados, visualiza para cada uno de los jefes, manager_id, el nº de empleados que
están a su cargo.y la media de los salarios de estos empleados.
11. Modifica la consulta anterior para que aparezca además del código del jefe, su nombre y
apellido.
12 . Lo mismo que en el ejercicio 10, pero en este caso visualiza solo para aquellos jefes que tienen
más de 7 empleados a su cargo y ordenados por nº de empleados.
15. Utiliza la consulta anterior para encontrar el nombre del departamento que más empleados tiene.
16. Selecciona para cada jefe, cuanto ganan en total sus empleados, pero solo para aquellos casos en
los que la media del salario de sus empleados sea mayor que 3000.
17. Selecciona para cada jefe cuantos empleados tiene a su cargo y cuanto ganan en total pero solo
para aquellos jefes con más de 6 empleados a su cargo.
18. Lo mismo qeu en la consulta anterior pero solo para aquellos jefes cuyo código sea 100, 121 o
122.
From employees
where manager_id in (100, 121, 122)
Group by manager_id
having count(*)>6
order by manager_id
19. Calcular el número de empleados que realizan cada OFICIO en cada DEPARTAMENTO. Los
datos que se visualizan son: departamento, oficio y número de empleados
20. Encuentra el nombre del departamento que paga más dinero al mes entre todos sus empleados y
cuanto es ese dinero
21. Visualizar los departamentos en los que el salario medio es mayor o igual que la media de todos
los salarios
SELECT department_id, AVG(salary) FROM employees
GROUP BY department_id
HAVING AVG(salary) >=(SELECT AVG(salary) FROM employees);
24. Encuentra cuantos departementos hay en total entre Canada y Estados unidos
25. Encuantra los nombres de los empleados más antiguos de cada departamento
SQL. Clausulas avanzadas de selección
select first_name, last_name, department_id
from employees
where employee_id in ( select employee_id from employees where ( hire_date,
department_id)in (select min(hire_date),department_id from employees
group by department_id))
26. Disponemos de tres tablas: ALUM contiene los nombres de los alumnos que hay actualmente en
el centro, NUEVOS contiene los nombres de los futuros alumnos y ANTIGUOS contiene los
nombres de antiguos alumnos del centro. La descripción es la misma para los tres. Visualizar los
nombres de los alumnos actuales y de los futuros alumnos
SELECT nombre FROM alum
UNION
SELECT nombre FROM nuevos;
27. Obtener los nombres de alumnos que están actualmente en el centro y que estuvieron en el
centro hace ya un tiempo.
O bien
SELECT nombre FROM alum
WHERE nombre IN (SELECT nombre FROM antiguos);
28. Obtener los nombres y la localidad de alumnos que están actualmente en el centro y que nunca
estuvieron anteriormente en él.
29. Seleccionar los nombres de la tabla ALUM que estén en NUEVOS y no estén en ANTIGUOS
30. Seleccionar los nombres de la tabla ALUM que estén en NUEVOS o estén en ANTIGUOS.
SELECT nombre FROM alum
SQL. Clausulas avanzadas de selección
WHERE nombre IN (SELECT nombre FROM nuevos
UNION
SELECT nombre FROM antiguos);
31. Visualizar los nombres de los alumnos de la tabla ALUM que aparezcan en alguna de estas
tablas: NUEVOS y ANTIGUOS.
32. Visualizar los nombres de los alumnos dela tabla ALUM que aparezcan en estas dos tablas:
ANTIGUOS y NUEVOS
SQL> SELECT NOMBRE FROM ALUM SQL> SELECT NOMBRE FROM ALUM
2 WHERE NOMBRE IN 2 INTERSECT
3 (SELECT NOMBRE FROM NUEVOS 3 (SELECT NOMBRE FROM NUEVOS
4 INTERSECT 4 INTERSECT
5 SELECT NOMBRE FROM ANTIGUOS); 5 SELECT NOMBRE FROM ANTIGUOS);
33. Visualizar aquellos nombres de la tabla ALUM que no están en la tabla ANTIGUOS ni en la
tabla NUEVOS
SQL> SELECT NOMBRE FROM ALUM SQL> SELECT NOMBRE FROM ALUM
2 MINUS 2 WHERE NOMBRE NOT IN
3 (SELECT NOMBRE FROM ANTIGUOS 3 (SELECT NOMBRE FROM ANTIGUOS
4 UNION 4 UNION
5 SELECT NOMBRE FROM NUEVOS); 5 SELECT NOMBRE FROM NUEVOS);