Sei sulla pagina 1di 8

PARCIAL 6

1. Evalúe la siguiente sentencia SQL:


1 SELECT a.emp_name, a.sal, a.dept_id, b.maxsal
2 FROM employees a,
3 (SELECT dept_id, MAX(sal) maxsal
4 FROM employees
5 GROUP BY dept_id) b
6 WHERE a.dept_id = b.dept_id
7 AND a.sal < b.maxsal;
¿Cuál es el resultado obtenido al ejecutar dicha sentencia?

La sentencia produce un error en la línea 1.

La sentencia produce un error en la línea 3.

La sentencia produce un error en la línea 6.

La sentencia retorna el nombre, salario, ID de departamento y máximo salario


percibido en el departamento del empleado corriente para todos los
departamentos que pagan salarios menores al máximo salario pagado en la
compañía.

La sentencia retorna el nombre, salario, ID de departamento y máximo


salario percibido en el departamento del empleado corriente para
todos los empleados que perciben un salario inferior al máximo salario
pagado en su departamento. (CORRECTA)

2. ¿En cuál de los siguientes escenarios un análisis del tipo N-Principales sería
la mejor solución?

Se desea identificar los empleados de mayor categoría en la compañía.

Se desea encontrar el director supervisando el mayor número de empleados.

Se desea identificar la persona que establece el salario más alto para todos los
empleados.

Se desea establecer un ranking de los tres mejores representantes de


venta que hayan vendido el número máximo de productos.
(CORRECTA)

3. ¿Cuál de las siguientes funciones requiere una cláusula GROUP BY en la


sentencia SQL?

CUBE

GROUPING

GROUP_ID
Todas las anteriores (CORRECTA)

Ninguna de las anteriores


Opciones A y B

4. ¿Para qué se utiliza la función GROUPING?

La función GROUPING es idéntica a GROUP BY, pero ejecuta con mejor


performance

La función GROUPING es utilizada para eliminar valores nulos antes de la


agregación

La función GROUPING identifica filas superagregadas (CORRECTA)

La función GROUPING se encuentra deprecada en Oracle9i y no debería ser


utilizada

5. En la siguiente sentencia SQL, ¿cuál es el resultado retornado en la columna


GRP?
SELECT sales_rep_id, SUM(order_total), GROUPING(sales_rep_id) GRP
FROM oe.orders
GROUP BY CUBE(sales_rep_id)

La consulta dispara una excepción

La columna GRP muestra una cuenta acumulativa de SALES_REP_ID

La columna GRP muestra una suma acumulativa de ORDER_TOTAL, agrupado


por SALES_REP_ID

La columna GRP es un identificador de superagregados (CORRECTA)

6. ¿Cuál de las siguientes sentencias SELECT muestra el id de orden de


compra, id de producto y la cantidad de ítems en la tabla ITEM que coincidan
en id de producto y cantidad de ítems con la orden cuyo id es 605? No mostrar
los detalles de la orden 605.

SELECT ordeid,prodid,qty
FROM item
WHERE (prodid,qty) IN
(SELECT prodid,qty
FROM item
WHERE ordid=605);

SELECT ordeid,prodid,qty
FROM item
WHERE (prodid,qty) =
(SELECT prodid,qty
FROM item
WHERE ordid=605)
AND ordid<>605;

SELECT ordeid,prodid,qty
FROM item WHERE (prodid,qty) IN
(SELECT prodid,prodid,qty
FROM item
WHERE ordid=605)
AND ordid<>605;

SELECT ordeid,prodid,qty
FROM item
WHERE (prodid,qty) IN
(SELECT prodid,qty
FROM item
WHERE ordid=605)
AND ordid<>605; (CORRECTA)

7. ¿Cuál es la diferencia entre los operadores UNION y UNION ALL?

Uno realiza la unión de todos los datos mientras que el otro devuelve la unión
de los datos en ambas consultas.

Uno devuelve los resultados de ambas consultas tras eliminar las filas
duplicadas, el otro devuelve los resultados de ambas consultas
incluidas las filas duplicadas. (CORRECTA)

Uno devuelve los resultados de la primer consulta tras eliminar las filas que
aparecen en la segunda consulta, el otro devuelve los resultados de ambas
consultas incluidas las filas duplicadas.

Uno devuelve los resultados de ambas consultas tras eliminar las filas
duplicadas, el otro devuelve los resultados de ambas consultas excepto las
filas duplicadas.

8. De las siguientes afirmaciones sobre subconsultas en la cláusula FROM.


¿Cuál es la correcta?

No se puede usar una subconsulta en la cláusula FROM.

Se elimina la necesidad de crear una vista o tabla utilizando una


subconsulta en la cláusula FROM. (CORRECTA)

Se elimina la necesidad de otorgar privilegios de SELECT sobre la tabla usada


en la subconsulta de la cláusula FROM.

Se define un nuevo origen de datos para futuras sentencias SELECT cuando se


utiliza una subconsulta de la cláusula FROM.
9. ¿Cuál de los siguientes niveles de agrupamiento no es calculado por la
cláusula: "GROUP BY CUBE((year, quarter), month)"?

GROUP BY year, quarter, month

GROUP BY month

GROUP BY quarter (CORRECTA)

GROUP BY ()

10. Analice la siguiente consulta SQL:


SELECT country_id, cust_state_province, SUM(amount_sold),
GROUPING_ID(country_id, cust_state_province) GROUPING_ID,
GROUP_ID()
FROM sales, customers, times
WHERE sales.time_id=times.time_id AND
sales.cust_id=customers.cust_id AND
times.time_id= '30-OCT-00' AND
country_id IN ('FR', 'ES')
GROUP BY GROUPING SETS (country_id, ROLLUP(country_id,
cust_state_province));
¿Cuál de las siguientes opciones es correcta con respecto a los niveles de
agrupamiento calculados en la consulta?

(country_id, cust_state_province), (country_id), (country_id), ( )


(CORRECTA)

(country_id, cust_state_province), (country_id), (cust_state_province), ( )

(country_id, cust_state_province), (country_id), ( )

(country_id), (cust_state_province), ( )

11. ¿Cuál de las afirmaciones es correcta con respecto a la siguiente consulta?


WITH channel_summary AS (
SELECT channels.channel_desc, SUM(amount_sold) AS channel_total
FROM sales, channels
WHERE sales.channel_id = channels.channel_id
GROUP BY channels.channel_desc
)
SELECT channel_desc, channel_total
FROM channel_summary
WHERE channel_total > (
SELECT SUM(channel_total) * 1/3
FROM channel_summary);
La consulta compara si el total de ventas por canal de ventas es
mayor a un tercio de las ventas totales. (CORRECTA)

La consulta muestra el canal de ventas junto al total de ventas correspondiente


a dicho canal para todos los canales de ventas existentes en la tabla
CHANNELS.

La consulta compara si el total de ventas es mayor a un tercio de las ventas


por canal de ventas.

La consulta falla.

12. Los tipos de datos INTERVAL se utilizan para almacenar un período de


tiempo. Que información se almacena en una columna de tipo INTERVAL DAY
TO SECOND.

Años y meses

Días y Horas

Minutos, segundos y fracciones de segundos

Todas las anteriores

La opción B y C son correctas (CORRECTA)

13. ¿Cuál de las siguientes opciones muestra como salida la función


CURRENT_TIMESTAMP?

Fecha, hora y zona horaria de la sesión. (CORRECTA)

Fecha y hora de la sesión.

Fecha y zona horaria de la sesión.

Zona horaria de la sesión.

14. ¿Cuál de las siguientes funciones retorna un valor con tipo de dato
TIMESTAMP WITH TIME ZONE?

SYSDATE

CURRENT_TIMESTAMP (CORRECTA)

LOCALTIMESTAMP

CURRENT_DATE

15. ¿Cuál de las siguientes afirmaciones es incorrecta con respecto a tablas


externas?
Los metadatos de tablas externas son creados utilizando la sentencia SQL
"CREATE TABLE ... ORGANIZATION EXTERNAL"

La cláusula "ORGANIZATION EXTERNAL" significa que los datos residen fuera


de la base de datos, almacenados en archivos del S.O.

Los archivos de S.O. son identificados en la base de datos a través de un


directorio lógico que define el directorio físico de S.O. donde los mismos
residen.

No puede realizarse una unión de tablas incluyendo una tabla externa


en forma directa en SQL. (CORRECTA)

No es posible ejecutar operaciones DML ni crear índices sobre tablas externas.

16. ¿Cuál de las siguientes sentencias es correcta acerca de la siguiente


consulta jerárquica?
SELECT last_name EMPLOYEE,
SYS_CONNECT_BY_PATH(last_name,'\' ) PATH,
LEVEL TREE_LEVEL
FROM EMPLOYEES
START WITH last_name = 'MATOS'
CONNECT BY employee_id = PRIOR manager_id;

La consulta jerárquica recorre la estructura de mando desde abajo hacia arriba,


muestra de izquierda a derecha separado por "|" (en la columna PATH) la
relación de mando desde el Director general hasta el empleado "Matos".

El nivel en el árbol (columna TREE_LEVEL) para el empleado "Matos" es 0, y el


nivel del Director general será el último nivel en la estructura jerárquica.

La consulta jerárquica recorre la estructura de mando desde arriba hacia abajo,


muestra de izquierda a derecha separado por "\" (en la columna PATH) la
relación de mando desde el Director general hasta el empleado "Matos".

La consulta jerárquica recorre la estructura de mando desde abajo


hacia arriba, muestra de izquierda a derecha separado por "\" (en la
columna PATH) la relación de mando desde el empleado "Matos" hasta
el Director general. (CORRECTA)

17. ¿Cuál de las siguientes afirmaciones con respecto a la siguiente consulta es


verdadera?
SELECT x.rowid AS r1, y.rowid AS r2, a, b, c, 1 AS MARKER
FROM x, y
WHERE x.a = y.b
INTERSECT
SELECT p.rowid, r.rowid, a, c, d, 2 AS MARKER
FROM p, r
WHERE p.a = r.y;
La consulta retorna la intersección de conjuntos mostrando las filas de la
segunda subconsulta que no existen en la primer subconsulta.

La consulta retorna la diferencia de conjuntos entre los resultados de la primer


y segunda subconsultas.

La consulta no retorna filas. (CORRECTA)

La consulta falla.

18. ¿Cuál de las siguientes afirmaciones es incorrecta con respecto al operador


PRIOR?

PRIOR posee la misma precedencia que los operadores aritméticos unarios "+"
y "-"

PRIOR evalúa la expresión inmediata siguiente para la fila padre de la fila


corriente en una consulta jerárquica.

PRIOR es un operador unario.

PRIOR puede anteceder o preceder al nombre de columna que hace


referencia a la fila padre de la fila corriente en una consulta
jerárquica. (CORRECTA)

19. ¿Cuál de las siguientes afirmaciones es correcta con respecto a la cláusula


WITH?

La cláusula WITH puede contener cualquier sentencia DML.

El nombre de consulta definido es visible para todos los bloques de


consulta del elemento WITH. (CORRECTA)

El nombre de una tabla existente tiene prioridad sobre el nombre del bloque de
consulta.

La cláusula WITH no puede contener más de una consulta.

20. ¿Cuál de las siguientes sentencias es verdadera con respecto a la siguiente


consulta?
SELECT 'Otro' "Desc", 1 "$"
FROM DUAL
UNION ALL
SELECT 'Masculino' AS "Gender", cust_credit_limit AS "U$"
FROM SH.CUST_MARITAL_STATUS
WHERE CUST_GENDER = 'M'
UNION ALL
SELECT 'Femenino', SUM(cust_credit_limit)
FROM SH.CUST_MARITAL_STATUS
WHERE CUST_GENDER = 'F'
GROUP BY cust_marital_status
ORDER BY 2 DESC, 1;

La consulta compuesta retorna las columnas "Desc" y "$". Las filas


resultantes se ordenan siguiendo un criterio compuesto: primero por
la segunda columna en forma descendente, y luego por la primer
columna en forma ascendente. (CORRECTA)

La consulta compuesta retorna las columnas "Gender" y "U$". Las filas


resultantes se ordenan siguiendo un criterio compuesto: primero por la
segunda columna en forma descendente, y luego por la primer columna en
forma ascendente.

La consulta falla ya que la definición de alias al utilizarse operadores SET es


incorrecta.

La consulta falla ya que la cláusula ORDER BY no puede utilizarse juntamente


con operadores SET.

Potrebbero piacerti anche