PUERTA | GATE-CS-2014-(Conjunto-1) | Pregunta 65 – Part 6

Dado el siguiente esquema:

     employees(emp-id, first-name, last-name, hire-date, dept-id, salary)
     departments(dept-id, dept-name, manager-id, location-id) 

Desea mostrar los apellidos y las fechas de contratación de todas las últimas contrataciones en sus respectivos departamentos en el ID de ubicación 1700. Emite la siguiente consulta:

SQL> SELECT last-name, hire-date
     FROM employees
     WHERE (dept-id, hire-date) IN ( SELECT dept-id, MAX(hire-date)
                                     FROM employees JOIN departments USING(dept-id)
                                     WHERE location-id = 1700
                                     GROUP BY dept-id); 

¿Cuál es el resultado?
(A) Ejecuta pero no da el resultado correcto.
(B) Se ejecuta y da el resultado correcto.
(C) Genera un error por comparación por pares.
(D) Genera un error porque la cláusula GROUP BY no se puede usar con combinaciones de tablas en una subconsulta

Respuesta: (B)
Explicación: La consulta dada usa la siguiente consulta interna.

SELECT dept-id, MAX(hire-date)
     FROM employees JOIN departments USING(dept-id)
     WHERE location-id = 1700
     GROUP BY dept-id

La consulta interna produce la última fecha máxima de contratación en cada departamento ubicado en la identificación de ubicación 1700.

La consulta externa simplemente selecciona todos los pares de consultas internas. Por lo tanto, la consulta produce un resultado correcto.

SELECT last-name, hire-date
     FROM employees
     WHERE (dept-id, hire-date) IN
     (Inner-Query); 

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *