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

SELECT

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)