Está en la página 1de 2

PostgreSQL - Introducción a SQL

Ejercicios de la Lección Número 7


1. El departamento de RRHH requiere una lista con los códigos de cada departamento, que no contengan
los códigos de los cargos ST_CLERK.
department_id
---------------
10
20
30
...
(26 rows)

R: SELECT department_id

FROM employees

WHERE job_id != 'ST_CLERK'

GROUP BY department_id
ORDER BY department_id;

2. El departamento de RRHH requiere una lista de los países que no tienen departamentos asignados,
muestre el código del país y su nombre.
country_id | name
------------+-------------
AR | Argentina
AU | Australia
BE | Belgium
...
(21 rows)

R: SELECT country_id, name

FROM countries

except

SELECT e.country_id, d.name

from locations e
JOIN departments f USING (location_id)

JOIN countries d USING(country_id)

WHERE f.manager_id is not null;


PostgreSQL - Introducción a SQL
Ejercicios de la Lección Número 7
3. Cree una lista con el código del empleado y el código del cargo, de todos aquellos empleados que
tienen un cargo que se repite mas de una vez.
employee_id | job_id
-------------+---------
176 | SA_REP
200 | AD_ASST
(2 rows)

R: SELECT employee_id, job_id

FROM employees

INTERSECT

SELECT employee_id, job_id


FROM job_history;

4. Cree una lista con el nombre del empleado, el código del departamento, y el nombre del departamento,
de todos aquellos empleados que tienen un departamento asignado o no.
last_name | department_id | ?column?
-------------+---------------+----------------------
Abel | 80 |
Ande | 80 |
...
Grant | |
...
| 10 | Administration
| 20 | Marketing
...
(132 rows)

R:
SELECT e.last_name, e.department_id, null

FROM employees e

union

SELECT e.last_name, e.department_id, d.department_name

FROM employees e

JOIN departments d USING (department_id)


JOIN departments ON (e.manager_id = d.manager_id)

GROUP by e.last_name, e.department_id, d.department_id;

También podría gustarte