Databases
T01-011-01 Subconsultas
Enunciado
Subconsultas en la cláusula
WHERE
que devuelven tuplas de valores.Fijándonos en las subconsultas que hemos realizado hasta ahora, podemos observar que en la cláusula SELECT, únicamente hemos incluido una expresión. Aunque no es tan normal como en los casos anteriores, hay veces que nos conviene comparar parejas de valores, en lugar de valores únicos.
Ejemplo:
¿Quienes son los que menos antigüedad tienen de cada uno de los departamentos?:
SELECT DEPARTMENT_ID, FIRST_NAME, LAST_NAME
FROM HR.employees
WHERE (DEPARTMENT_ID, HIRE_DATE) IN (
SELECT DEPARTMENT_ID, MIN(HIRE_DATE)
FROM HR.employees
GROUP BY DEPARTMENT_ID
)
ORDER BY DEPARTMENT_ID
DEPARTMENT_ID FIRST_NAME LAST_NAME 10 Jennifer Whalen 20 Michael Hartstein 30 Den Raphaely ... ... ...
Ejercicio:
¿Quiénes son los empleados que más cobran de cada tipo de trabajo?.
Ordena los resultados alfabéticamente por el trabajo y, en caso de coincidir en el trabajo, por los apellidos.
Tipo
Solución
SELECT JOB_TITLE, FIRST_NAME, LAST_NAME
FROM HR.employees JOIN HR.jobs USING (JOB_ID)
WHERE (JOB_TITLE, SALARY) IN (
SELECT JOB_TITLE, MAX(SALARY)
FROM HR.employees JOIN HR.jobs USING (JOB_ID)
GROUP BY JOB_TITLE
)
ORDER BY JOB_TITLE, LAST_NAME
Prueba
LibrerÃas (Onfly databases)

