Uso de las preguntas sobre funciones de grupo

1. Which of the following is NOT a GROUP BY function?

  1. MAX
  2. MIN
  3. NVL
  4. AVG

Answer: C. NVL es una función general que se utiliza para proporcionar un valor alternativo a los valores NULL. Las funciones MAX, MIN y AVG se pueden utilizar como funciones GROUP BY.

2. Which of the following functions can be used without GROUP BY clause in SELECT query?

  1. COUNT
  2. MAX
  3. MIN
  4. AVG

Answer: A, B, C, D. Todas las funciones de grupo enumeradas se pueden utilizar en una consulta siempre que no se seleccionen otras columnas en la consulta SELECT.

3. Which of the following SELECT query returns the department number with maximum salary compensated to an employee? (Consider the table structure as given)

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
  1. SELECT department_id , max(salary ) FROM employees ;
  2. SELECT department_id , max(salary ) FROM employees  GROUP BY department_id ;
  3. SELECT max(salary ) FROM employees  GROUP BY department_id ;
  4. SELECT max(salary ) FROM employees ;

Answer: B. La función MAX se puede utilizar para devolver el salario máximo en un departamento donde cada grupo está formado por un departamento.

4. Which of the following statements are true about the COUNT function?

  1. La función COUNT cuenta el número de filas
  2. La función COUNT (*) cuenta el número de filas con duplicados y valores NULL
  3. La función COUNT (DISTINCT) cuenta el número de filas distintas
  4. COUNT (*) es equivalente a COUNT (ALL)

Answer: B. COUNT (*) cuenta el número de filas, incluidos los duplicados y los NULL. Utilice las palabras clave DISTINCT y ALL para restringir valores duplicados y NULL.

5. What are the appropriate data types accepted by GROUP BY functions?

  1. Tablas anidadas
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. Los tipos de datos para las funciones con un argumento pueden ser CHAR, VARCHAR2, NUMBER o DATE.

6. A table T_COUNT has 12 number values as 1, 2, 3, 32, 1, 1, null, 24, 12, null, 32, null. Predict the output of the below query.

SELECT COUNT (*) FROM t_count;
  1. 12
  2. 6
  3. 9
  4. Lanza una excepción porque la función COUNT no funciona con valores NULL

Answer: A. COUNT (*) cuenta el número de filas, incluidos los duplicados y los NULL. Utilice las palabras clave DISTINCT y ALL para restringir valores duplicados y NULL.

7. A table T_COUNT has 12 number values as 1, 2, 3, 32, 1, 1, null, 24, 12, null, 32, null. Predict the output of the below query.

SELECT COUNT (num) FROM t_count;
  1. 12
  2. 6
  3. 9
  4. Lanza una excepción porque la función COUNT no funciona con valores NULL

Answer: C. COUNT (columna) ignora los valores NULL pero cuenta los duplicados.

8. A table T_COUNT has 12 number values as 1, 2, 3, 32, 1, 1, null, 24, 12, null, 32, null. Predict the output of the below query.

SELECT COUNT (ALL num) FROM t_count;
  1. 12
  2. 6
  3. 9
  4. Lanza una excepción porque la función COUNT no funciona con valores NULL

Answer: C. COUNT (columna TODOS) ignora los valores NULL pero cuenta los duplicados.

9. A table T_COUNT has 12 number values as 1, 2, 3, 32, 1, 1, null, 24, 12, null, 32, null. Predict the output of the below query.

SELECT COUNT (DISTINCT num) FROM t_count;
  1. 12
  2. 6
  3. 9
  4. Lanza una excepción porque la función COUNT no funciona con valores NULL

Answer: B. COUNT (columna DISTINCT) cuenta los valores distintos no nulos.

10. What happens when the below query is executed in SQL* Plus?

SELECT COUNT() FROM dual;
  1. Se ejecuta correctamente y no devuelve ninguna salida.
  2. Se ejecuta correctamente y devuelve la salida como '1'
  3. Lanza la excepción "ORA-00909: número de argumentos no válido"
  4. Lanza la excepción "ORA-00904:" COUNT ": identificador no válido" porque la función COUNT no funciona con la tabla DUAL

Answer: C. La función COUNT requiere un mínimo de un argumento que puede ser la columna con [ALL | DISTINCT] modificador o '*'.

11. Here are few statements about VARIANCE function in SQL.

yo. La función acepta múltiples entradas numéricas y devuelve la varianza de todos los valores.

ii. La función acepta una columna numérica y devuelve la variación de todos los valores de la columna, incluidos los NULL

iii. La función acepta una columna numérica y devuelve la varianza de todos los valores de la columna, excepto los NULL

Elija la combinación correcta de las siguientes opciones.

  1. yo y iii
  2. yo y yo
  3. ii
  4. iii

Answer: C. La función VARIANCE acepta un único argumento numérico como el nombre de la columna y devuelve la variación de todos los valores de la columna considerando NULL.

12. Which of the following is NOT a GROUP BY extensions in SQL?

  1. AGRUPAR POR
  2. CONJUNTOS DE AGRUPACIÓN
  3. CUBE
  4. ROLLUP

Answer: A. Las operaciones GROUPING SETS se pueden utilizar para realizar múltiples agregaciones GROUP BY con una sola consulta.

13. Select the correct statements about the below query. Consider the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT department_id , SUM(salary )
FROM employees 
GROUP BY department_id ;
  1. SUM es un grupo por función porque procesa un grupo de empleados que trabajan en un departamento
  2. SUM es una función agregada porque produce un resultado por grupo de datos
  3. SUM es una función de una sola fila porque devuelve un valor único para un grupo, es decir, un departamento
  4. SUM es una función de grupo por extensión porque usa la cláusula GROUP BY para agrupar lógicamente los departamentos

Answer: A. SUM es una función de grupo que calcula la suma de los salarios de un grupo de empleados que trabajan en un departamento.

14. Which clause is used to filter the query output based on aggregated results using a group by function?

  1. WHERE
  2. LIMIT
  3. GRUPO DONDE
  4. HAVING

Answer: D. La cláusula HAVING se utiliza para restringir los resultados del grupo. Utiliza la cláusula HAVING para especificar los grupos que se mostrarán, restringiendo así aún más los grupos sobre la base de información agregada. La cláusula HAVING puede preceder a la cláusula GROUP BY, pero se recomienda que coloque la cláusula GROUP BY primero porque es más lógica. Los grupos se forman y las funciones de grupo se calculan antes de que la cláusula HAVING se aplique a los grupos en la lista SELECT.

15. Examine the given table structure and predict the outcome of the following query.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT count(*)
FROM employees 
WHERE comm = NULL;
  1. La consulta devuelve el número de empleados que no tienen comisión.
  2. La consulta arroja un error porque el signo igual no se puede usar al buscar un valor NULL
  3. La consulta devuelve el número de empleados de un departamento cuya comisión es un valor NULO
  4. La consulta arroja un error porque falta la cláusula GROUP BY en la consulta

Answer: B. La exclusión de NULL mediante la condición WHERE es una forma de dirigir la consulta para que ignore los NULL. Pero aquí el uso del operador IS NULL es incorrecto. La condición debería ser 'DONDE COM ES NULO'.

16. Which of the following statements is true about the group functions?

  1. La función MIN se puede utilizar solo con datos numéricos.
  2. La función MAX solo se puede utilizar con valores de fecha.
  3. La función AVG solo se puede utilizar con datos numéricos.
  4. La función SUM no puede formar parte de una función anidada.

Answer: C. La función AVG solo se puede utilizar con valores numéricos. Otras funciones que tienen tal restricción son SUM, STDDEV y VARIANCE.

17. Which of the following is a valid SELECT statement?

  1. SELECT AVG(retail-cost) FROM books GROUP BY category;
  2. SELECT category, AVG(retail-cost) FROM books;
  3. SELECT category, AVG(retail-cost) FROM books WHERE AVG(retail-cost) > 8.56 GROUP BY category;
  4. SELECT category, AVG(retail-cost) Profit FROM books GROUP BY category HAVING profit > 8.56;

Answer: A. Los alias de columna no se pueden utilizar en la cláusula GROUP BY o HAVING.

18. Which of the following statements is correct?

  1. La cláusula WHERE puede contener una función de grupo solo si la función no aparece también en la cláusula SELECT.
  2. Las funciones de grupo no se pueden usar en las cláusulas SELECT, FROM o WHERE.
  3. La cláusula HAVING siempre se procesa antes que la cláusula WHERE.
  4. La cláusula GROUP BY siempre se procesa antes que la cláusula HAVING.

Answer: D. Aunque Oracle no genera un error si la cláusula HAVING precede a la cláusula GROUP BY, pero se procesa solo después de que se procesa la cláusula GROUP BY y el grupo está listo para ser filtrado.

19. Which of the following is not a valid SQL statement?

  1. SELECT MIN(pubdate) FROM books GROUP BY category HAVING pubid = 4;
  2. SELECT MIN(pubdate) FROM books WHERE category = 'COOKING';
  3. SELECT COUNT(*) FROM orders WHERE customer# = 1005;
  4. SELECT MAX(COUNT(customer#)) FROM orders GROUP BY customer#;

Answer: A.

20. Which of the following statements is correct?

  1. La función COUNT se puede utilizar para determinar cuántas filas contienen un valor NULL.
  2. Solo se incluyen valores distintos en las funciones de grupo, a menos que la palabra clave ALL esté incluida en la cláusula SELECT.
  3. La cláusula WHERE restringe qué filas se procesan.
  4. La cláusula HAVING determina qué grupos se muestran en los resultados de la consulta.

Answer: C, D. La cláusula WHERE restringe las filas antes de que se agrupen y procesen, mientras que la cláusula HAVING restringe los grupos.

21. Which of the following is a valid SQL statement?

  1. SELECT customer#, order#, MAX(shipdate-orderdate) FROM orders GROUP BY customer# WHERE customer# = 1001;
  2. SELECT customer#, COUNT(order#) FROM orders GROUP BY customer#;
  3. SELECT customer#, COUNT(order#) FROM orders GROUP BY COUNT(order#);
  4. SELECT customer#, COUNT(order#) FROM orders GROUP BY order#;

Answer: B. La cláusula GROUP BY debe contener todas las columnas excepto la que se usa dentro de la función de grupo.

22. Which of the following SELECT statements lists only the book with the largest profit?

  1. SELECT title, MAX(retail-cost) FROM books GROUP BY title;
  2. SELECT title, MAX(retail-cost) FROM books GROUP BY title HAVING MAX(retail-cost);
  3. SELECT title, MAX(retail-cost) FROM books;
  4. Ninguna de las anteriores

Answer: A.

23. Which of the following statement(s) is/are correct?

1. Una función de grupo se puede anidar dentro de una función de grupo.

2. Una función de grupo se puede anidar dentro de una función de una sola fila.

3. Una función de una sola fila se puede anidar dentro de una función de grupo.

  1. 1
  2. 2
  3. 3
  4. 1 y 3

Answer: A, B, C. Las funciones de grupo se pueden anidar solo hasta una profundidad de dos. Las funciones de grupo se pueden anidar dentro de funciones de una sola fila (AVG integrado en una función TO_CHAR). Además, las funciones de una sola fila se pueden anidar dentro de funciones de grupo.

24. Which of the following functions is used to calculate the total value stored in a specified column?

  1. COUNT
  2. ADD
  3. TOTAL
  4. SUM

Answer: D. La función SUM se utiliza para obtener la suma de valores numéricos.

25. Which of the following SELECT statements lists the highest retail price of all books in the Family category?

  1. SELECT MAX(retail) FROM books WHERE category = 'FAMILY';
  2. SELECT MAX(retail) FROM books HAVING category = 'FAMILY';
  3. SELECT retail FROM books WHERE category = 'FAMILY' HAVING MAX(retail);
  4. Ninguna de las anteriores

Answer: A. Dado que la categoría FAMILY debe restringirse antes de la agrupación, las filas de la tabla deben filtrarse utilizando la cláusula WHERE y no la cláusula HAVING.

26. Which of the following functions can be used to include NULL values in calculations?

  1. SUM
  2. NVL
  3. MAX
  4. MIN

Answer: B.NVL es una función general para proporcionar valores alternativos a los valores NULL. Realmente puede marcar la diferencia en los cálculos aritméticos utilizando las funciones de grupo AVG, STDDEV y VARIANCE.

27. Which of the following is not a valid statement?

  1. Debe ingresar la palabra clave ALL en una función de grupo para incluir todos los valores duplicados.
  2. La función AVG se puede utilizar para encontrar la diferencia calculada promedio entre dos fechas.
  3. Las funciones MIN y MAX se pueden utilizar en columnas VARCHAR2.
  4. Todas las anteriores

Answer: A. La palabra clave ALL cuenta los duplicados pero ignora los NULL. Los duplicados también se incluyen con '*' y la especificación del nombre de la columna.

28. Which of the following SQL statements determines how many total customers were referred by other customers?

  1. SELECT customer#, SUM(referred) FROM customers GROUP BY customer#;
  2. SELECT COUNT(referred) FROM customers;
  3. SELECT COUNT(*) FROM customers;
  4. SELECT COUNT(*) FROM customers WHERE referred IS NULL;

Answer: B. Considerando a todos los clientes como un grupo, COUNT (referidos) contará solo aquellos que sean referidos por alguien. COUNT (referido) ignorará los valores NULL de la columna.

29. Determine the correct order of execution of following clauses in a SELECT statement.

1 SELECCIONAR

2.DE

3.DÓNDE

4.GRUPO POR

5.TENER

6.PEDIDO POR

  1. 2-3-4-5-1-6
  2. 1-2-3-4-5-6
  3. 6-5-4-3-2-1
  4. 5-4-2-3-1-6

Answer: A. El orden de procesamiento comienza desde la cláusula FROM para obtener los nombres de las tablas, luego restringe las filas usando la cláusula WHERE, agrupándolas usando la cláusula GROUP BY, restringiendo los grupos usando la cláusula HAVING. La cláusula ORDER BY es la última que se procesa para ordenar el conjunto de datos final.

30. Which of the below clauses is used to group a set of rows based on a column or set of columns?

  1. HAVING
  2. WHERE
  3. AGRUPAR POR
  4. GROUPING

Answer: C. La cláusula GROUP BY forma los grupos de datos basados ​​en la lista de columnas especificada.

31. Which of the following group functions can be used for population variance and population standard deviation problems?

  1. VAR_POP
  2. STDDEV_POP
  3. VARIANCE
  4. STDDEV_SASMP

Answer: A, B.

32. Select the positions in a SELECT query where a group function can appear.

  1. Instrucción SELECT
  2. Dónde cláusula
  3. Cláusula ORDER BY
  4. Cláusula GROUP BY

Answer: A, C, D. Las funciones de grupo pueden aparecer en la cláusula SELECT, ORDER BY y HAVING. Oracle genera una excepción si se utilizan funciones de grupo en cláusulas WHERE o GROUP BY.

33. Examine the structure of the EMPLOYEES table as given. Which query will return the minimum salary in each department?

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
  1. SELECT department_id , MIN (salary ) from EMPLOYEES ;
  2. SELECT department_id , MIN (salary ) from EMPLOYEES  GROUP BY department_id ;
  3. SELECT department_id , MIN (salary ) from EMPLOYEES  GROUP BY salary ;
  4. SELECT department_id , MIN (salary ) from EMPLOYEES  GROUP BY employee_id ;

Answer: B. La función MIN devuelve el salario mínimo en un grupo formado por departamento.

34. Examine the structure for the table EMPLOYEES and Interpret the output of the below query

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
SELECT COUNT(*), COUNT(all comm) FROM employees ;
  1. Emite un error porque solo se puede usar una función agregada en una consulta.
  2. Lanza un error porque falta la cláusula GROUP BY.
  3. Se ejecuta correctamente y devuelve los mismos valores para ambos.
  4. Se ejecuta con éxito donde COUNT (*) incluyendo NULL y COUNT (todas las comunicaciones) excluyendo NULL.

Answer: D.

35. Which of the following are true about group functions?

  1. Puede usar funciones de grupo en cualquier cláusula de una instrucción SELECT.
  2. Puede usar funciones de grupo solo en la lista de columnas de la cláusula select y en la cláusula WHERE de una instrucción SELECT.
  3. Puede mezclar columnas de una sola fila con funciones de grupo en la lista de columnas de una instrucción SELECT agrupando en las columnas de una sola fila.
  4. Puede pasar nombres de columna, expresiones, constantes o funciones como parámetro a una función de grupo.

Answer: C. Las funciones de grupo se pueden anidar solo hasta una profundidad de dos. Las funciones de grupo se pueden anidar dentro de funciones de una sola fila (AVG integrado en una función TO_CHAR). Además, las funciones de una sola fila se pueden anidar dentro de funciones de grupo.

36. Examine the structure of the table EMPLOYEES as given. You want to create a "emp_dept_sales" view by executing the following SQL statements.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)
CREATE VIEW emp_dept_sales
AS
SELECT d.department_name , sum(e.salary )
FROM employees  e, departments  d
where e.department_id =d.department_id 
GROUP by d.department_name ;

¿Qué afirmación es verdadera con respecto a la ejecución de la afirmación anterior?

  1. Se creará la vista y podrá realizar operaciones DLM en la vista
  2. La vista no se creará porque las declaraciones de combinación no están permitidas para crear una vista
  3. La vista no se creará porque la cláusula GROUP BY no está permitida para crear una vista
  4. Se creará la vista, pero no se permitirán operaciones DML en la vista

Answer: D. Reglas para realizar operaciones DML en una vista. No puede agregar datos a través de una vista si la vista incluye funciones de grupo o una cláusula GROUP BY o una palabra clave DISTINCT. La pseudocolumna ROWNUM palabra clave Columnas definidas por expresiones NOT NULL columnas en las tablas base que no están seleccionadas por la vista.

37. Which of the following statements are true regarding views?

  1. Una subconsulta que define una vista no puede incluir la cláusula GROUP BY
  2. Se crea una vista con la subconsulta que tiene la palabra clave DISTINCT se puede actualizar
  3. Se puede realizar una operación de lenguaje de manipulación de datos (DML) en una vista que se crea con la subconsulta que tiene todas las columnas NOT NULL de una tabla
  4. No se puede actualizar una vista que se crea con la subconsulta que tiene la pseudocolumna ROWNUM palabra clave

Answer: C, D. Reglas para realizar operaciones DML en una vista. No puede agregar datos a través de una vista si la vista incluye funciones de grupo o una cláusula GROUP BY o una palabra clave DISTINCT. La pseudocolumna ROWNUM palabra clave Columnas definidas por expresiones NOT NULL columnas en las tablas base que no están seleccionadas por la vista.

38. Examine the table structure as given.

SQL> DESC departments
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 DEPARTMENT_ID		 NOT NULL NUMBER(4)
 DEPARTMENT_NAME	 NOT NULL VARCHAR2(30)
 MANAGER_ID			  NUMBER(6)
 LOCATION_ID			  NUMBER(4)

¿Qué cláusula de la siguiente consulta SQL genera un error?

SELECT department_id , avg(salary )
FROM departments 
WHERE upper(job) in ('SALES','CLERK')
GROUP BY job
ORDER BY department_id ;
  1. WHERE
  2. SELECT
  3. PEDIR POR
  4. AGRUPAR POR

Answer: D. La cláusula GROUP BY debe contener todas las columnas que aparecen en la instrucción SELECT. Genera un error porque TRABAJO no es una columna seleccionada. Debería haber usado DEPARTMENT_ID en lugar de JOB.

39. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

¿Cuál de las siguientes consultas SELECT mostrará el salario máximo y mínimo ganado por cada categoría de trabajo?

  1. SELECT job, MAX(salary ), MIN (salary ) FROM employees  GROUP BY department_id ;
  2. SELECT job, MAX(salary ), MIN (salary ) FROM employees  GROUP BY job;
  3. SELECT job, MAX(salary ), MIN (salary ) FROM employees ;
  4. Dos funciones agregadas no se pueden usar juntas en la instrucción SELECT.

Answer: B. Puede aparecer más de una función de grupo en la instrucción SELECT.

40. Consider the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Examine el error en la siguiente consulta.

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. Se ejecuta con éxito y genera el resultado requerido.
  2. Produce un error porque COUNT (*) también debe especificarse en la cláusula SELECT.
  3. Se ejecuta correctamente pero no produce ningún resultado porque COUNT (prod_id) debe usarse en lugar de COUNT (*).
  4. Produce un error porque COUNT (*) debería estar solo en la cláusula HAVING y no en la cláusula WHERE.

Answer: D. Las funciones de grupo no se pueden utilizar en la cláusula WHERE. Puede aparecer en la cláusula SELECT, HAVING y ORDER BY.

41. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Predecir el resultado de la siguiente consulta

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. Se ejecuta correctamente y enumera el recuento de empleados en cada categoría de trabajo, pero ignora la cláusula HAVING ya que "salario" no está en la cláusula GROUP BY.
  2. Lanza un error porque la cláusula HAVING no es válida.
  3. Lanza un error porque "salario" no está incluido en la cláusula GROUP BY.
  4. Se ejecuta con éxito y enumera el recuento de empleados en cada categoría que tienen una suma de salario superior a 5000.

Answer: D. La cláusula HAVING restringe los resultados del grupo. La función COUNT se usa para contar mientras que SUM se usa para sumar los valores numéricos.

42. What is true of using group functions on columns that contain NULL values?

  1. Las funciones de grupo en columnas ignoran los valores NULL.
  2. Las funciones de grupo en columnas que devuelven fechas incluyen valores NULL.
  3. Las funciones de grupo en columnas que devuelven números incluyen valores NULL.
  4. Las funciones de grupo en columnas no se pueden utilizar con precisión en columnas que contienen valores NULL.

Answer: A. Excepto la función COUNT, todas las funciones de grupo ignoran los valores NULL.

43. Which of the following statetments are true about the usage of GROUP BY columns in a subquery?

  1. Las subconsultas pueden contener cláusulas GROUP BY y ORDER BY.
  2. Las subconsultas no pueden contener cláusulas GROUP BY y ORDER BY.
  3. Las subconsultas pueden contener ORDER BY pero no la cláusula GROUP BY.
  4. Las subconsultas no pueden contener ORDER BY pero pueden tener una cláusula GROUP BY.

Answer: A. Como la consulta principal, una subconsulta puede contener una cláusula GROUP BY así como ORDER BY.

Examine the table structure as given and answer the questions 44 to 49 that follow.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

44. Predict the outcome of the below query

SELECT avg(max(salary ))
FROM employees 
GROUP BY department_id 
HAVING avg(max(salary ))>100;
  1. Se ejecuta con éxito.
  2. Da un error porque la cláusula HAVING no es válida.
  3. Da un error porque la expresión GROUP BY no es válida.
  4. Da un error porque las funciones agregadas no se pueden anidar en la instrucción SELECT.

Answer: B. La cláusula HAVING no permite el anidamiento de funciones agregadas.

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. Da error porque una función agregada no puede aparecer justo después de la cláusula SELECT.
  2. Da error porque la cláusula GROUP BY no es válida.
  3. Se ejecuta sin errores pero no produce salida.
  4. Se ejecuta con éxito y da salario medio en cada departamento.

Answer: D. Las funciones de grupo se pueden usar en cualquier secuencia (antes o después del grupo por columnas) en una consulta SELECT.

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. Se ejecuta correctamente y muestra "trabajo" en minúsculas.
  2. Se ejecuta correctamente pero muestra "trabajo" en el caso original.
  3. Emite un error porque las funciones de fila única y agregada no se pueden usar juntas.
  4. Emite un error porque la conversión de casos en la lista SELECT no coincide con la cláusula GROUP BY de conversión de casos.

Answer: D. La función LOWER, al ser una función de una sola fila, debe especificarse en la cláusula GROUP BY para basar la agrupación de datos EMPLOYEES.

47. Which of the below query executes successfully?

  1. SELECT employee_id , COUNT(hiredate-sysdate) FROM employees ;
  2. SELECT AVG(salary ), MAX(salary ) FROM employees ;
  3. SELECT AVG(salary ), MAX(salary ) FROM employees  GROUP BY department_id ;
  4. SELECT AVG(hiredate) FROM employees ;

Answer: B, C. La primera consulta opera con todos los datos de EMPLEADOS mientras que la segunda procesa los datos en grupos de departamento.

48. Identify the error in the below SELECT statement.

SELECT department_id , AVG (salary )
FROM employees 
GROUP BY department_id 
HAVING department_id  > 10;
  1. Se ejecuta con éxito y muestra el salario medio de los departamentos superiores a 10.
  2. Emite un error porque la columna no agregada no se puede utilizar en la cláusula HAVING.
  3. Se ejecuta correctamente pero muestra un resultado incorrecto para los departamentos.
  4. Emite un error porque la cláusula HAVING debe colocarse antes de la cláusula GROUP BY.

Answer: A. Las expresiones GROUP BY se pueden usar en la cláusula HAVING para filtrar los grupos del conjunto de datos final.

49. Predict the output of the below query

SELECT department_id , AVG (salary )
FROM employees 
GROUP BY department_id 
HAVING (department_id >10 and AVG(salary )>2000);
  1. Emite un error porque no se pueden dar varias condiciones en la cláusula HAVING.
  2. Lanza un error porque una columna no agregada no se puede usar en la cláusula HAVING.
  3. Se ejecuta con éxito y muestra el salario promedio del departamento superior a 10 y superior a 2000.
  4. Se ejecuta correctamente pero no se muestra ningún resultado.

Answer: C. La cláusula HAVING puede imponer varias condiciones unidas utilizando el operador AND u OR para filtrar los grupos.

50. Which of the following group functions can be used with DATE values?

  1. AVG
  2. MIN
  3. SUM
  4. COUNT

Answer: B, D. Las funciones de grupo AVG y SUM se pueden utilizar solo con datos numéricos.

51. Which of the following statements are true?

  1. AVG y SUM solo se pueden usar con tipos de datos numéricos.
  2. STDDEV y VARIANCE solo se pueden usar con tipos de datos numéricos.
  3. MAX se puede utilizar con el tipo de datos LONG.
  4. MAX y MIN no se pueden utilizar con los tipos de datos LOB o LONG.

Answer: A, B, D. Las funciones de grupo AVG, SUM, VARIANCE y STDDEV solo se pueden utilizar con datos numéricos. Ninguna de las funciones de grupo se puede utilizar con el tipo de datos LONG.

52. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Identifique el error en la consulta siguiente.

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. No se pueden usar varias funciones agregadas en una sola consulta SELECT
  2. La cláusula GROUP BY no es válida
  3. La función COUNT no se puede utilizar con valores DATE
  4. Sin errores y se ejecuta con éxito

Answer: D.

53. Which of the following group function can be used with LOB data types?

  1. MAX
  2. MIN
  3. COUNT
  4. Ninguno de esos

Answer: D. No se puede utilizar ninguna función agregada con tipos de datos LOB.

54. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Predecir el resultado de las dos consultas siguientes

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. Ambas consultas producen el mismo resultado
  2. Query - 1 y Query - 2 producen resultados diferentes porque Query-1 considera valores NULL de COMM y Query-2 sustituye valores NULL de COMM con cero
  3. La consulta - 1 produce un error porque COMM tiene valores NULL
  4. La consulta 2 produce un error porque NVL no se puede anidar con la función agregada.

Answer: B. La función AVG ignora los valores NULL mientras calcula el promedio de los datos numéricos. AVG (columna) calculará el promedio solo para valores no nulos. Sin embargo, si se utiliza NVL para sustituir NULL por un cero, se considerarán todos los valores.

55. Choose the correct statements about the GROUP BY clause.

  1. El alias de columna se puede utilizar en la cláusula GROUP BY.
  2. La columna GROUP BY debe estar en la cláusula SELECT.
  3. La cláusula GROUP BY debe aparecer junto con la cláusula HAVING una consulta SELECT.
  4. La cláusula GROUP BY debe aparecer después de la cláusula WHERE en una consulta SELECT.

Answer: D. Según la secuencia de procesamiento, la cláusula GROUP BY debe aparecer después de la cláusula WHERE en una consulta SELECT.

56. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Predecir el resultado de la siguiente consulta

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. Lanza un error porque la lista de columnas GROUP BY no coincide con la lista de columnas SELECT.
  2. Se ejecuta con éxito y produce un salario promedio de una categoría de trabajo en cada departamento.
  3. Se ejecuta con éxito y produce un salario promedio para un departamento en cada categoría de trabajo.
  4. Lanza un error porque las cláusulas GROUP BY y ORDER BY tienen una lista de columnas diferente.

Answer: B. Aunque la cláusula GROUP BY ordena implícitamente los grupos, las cláusulas GROUP BY y ORDER BY se pueden usar juntas en una consulta.

57. Which clause should you use to exclude group results in a query using group functions?

  1. WHERE
  2. HAVING
  3. AGRUPAR POR
  4. PEDIR POR

Answer: B. La cláusula HAVING se utiliza para restringir los grupos.

Examine the table structure as given and answer the questions 58 and 59 that follow.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

58. Predict the outcome of the below query

SELECT department_id ,avg(salary )
FROM employees 
HAVING avg(salary )>2000
GROUP BY department_id 
ORDER BY department_id
  1. Se ejecuta con éxito.
  2. Lanza un error porque la cláusula HAVING precede a la cláusula GROUP BY.
  3. Lanza un error porque la cláusula HAVING usa la función agregada.
  4. Se ejecuta pero no se muestran resultados porque la cláusula HAVING precede a la cláusula GROUP BY.

Answer: A. La cláusula HAVING puede preceder a la cláusula GROUP BY pero se procesa solo después de que se calculan los resultados del grupo.

59. Predict the outcome of the below query

SELECT department_id , COUNT(first_name )
FROM employees 
WHERE job IN ('SALESMAN','CLERK','MANAGER','ANALYST')
GROUP BY department_id 
HAVING AVG(salary ) BETWEEN 2000 AND 3000;
  1. Devuelve un error porque el operador BETWEEN no se puede utilizar en la cláusula HAVING.
  2. Devuelve un error porque las cláusulas WHERE y HAVING no se pueden usar en la misma instrucción SELECT.
  3. Devuelve un error porque las cláusulas WHERE y HAVING no se pueden usar para aplicar condiciones en la misma columna.
  4. Se ejecuta con éxito.

Answer: D. La cláusula WHERE restringe el número de filas que participan en el procesamiento de cláusulas de grupo.

60. Which statements are true regarding the WHERE and HAVING clauses in a SELECT statement?

  1. La cláusula HAVING se puede utilizar con funciones de grupo en subconsultas.
  2. La cláusula WHERE se puede utilizar para excluir filas después de dividirlas en grupos.
  3. La cláusula WHERE se puede utilizar para excluir filas antes de dividirlas en grupos.
  4. Las cláusulas WHERE y HAVING se pueden usar en la misma declaración solo si se aplican a diferentes columnas de la tabla.

Answer: A, C. La cláusula WHERE y HAVING se pueden usar juntas en una consulta. DONDE excluye las filas antes del procesamiento de grupos, mientras que HAVING restringe los grupos.

Examine the table structure as given and answer the questions 61 and 62 that follow.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

61. Predict the outcome of the below query.

SELECT department_id , avg(salary )
FROM employees 
HAVING avg(salary ) > min(salary )
GROUP BY department_id ;
  1. Lanza un error porque las funciones agregadas utilizadas en la cláusula HAVING deben estar en la lista SELECT.
  2. Lanza un error porque la cláusula HAVING aparece antes de la cláusula GROUP BY.
  3. Muestra los departamentos cuyo salario promedio es mayor que el salario mínimo del departamento.
  4. Muestra los departamentos cuyo salario promedio es mayor que el salario mínimo de la organización.

Answer: C. Las funciones de grupo se pueden utilizar mediante la cláusula HAVING para filtrar los grupos.

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. Calcula la suma de promedios de longitud del nombre del empleado en cada departamento.
  2. Calcula la longitud promedio del nombre del empleado en cada departamento.
  3. Lanza un error porque la función de una sola fila no se puede usar con funciones de grupo.
  4. Emite un error porque la columna de grupo DEPARTMENT_ID no se usa en la lista SELECT.

Answer: A. Las funciones de grupo se pueden usar con funciones generales o de una sola fila en la consulta SELECT.

63. Up to how many levels, the group functions can be nested?

  1. 1
  2. 2
  3. 3
  4. Sin limites

Answer: B. Las funciones de grupo se pueden anidar como máximo en 2 niveles. Sin embargo, las funciones de una sola fila se pueden anidar en cualquier número de niveles.

64. What is the limit of number of groups within the groups created by GROUP BY clause?

  1. 1
  2. 2
  3. 3
  4. Sin límite

Answer: D. No hay límite para el número de grupos y subgrupos que se pueden formar.

65. Choose the correct statements about the HAVING clause.

  1. La cláusula HAVING es una cláusula opcional en la instrucción SELECT.
  2. La cláusula HAVING es una cláusula obligatoria si la sentencia SELECT usa una cláusula GROUP BY.
  3. La cláusula HAVING puede aparecer en una instrucción SELECT solo si usa una cláusula GROUP BY.
  4. La cláusula HAVING es una cláusula obligatoria si la sentencia SELECT usa una cláusula GROUP BY.

Answer: A, C. La cláusula HAVING solo puede aparecer en una consulta si la cláusula GROUP BY está presente, pero viceversa no es verdadera.

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. Emite un error porque las funciones de grupo no se pueden aplicar en la tabla DUAL.

Answer: A. La tabla DUAL contiene una sola columna DUMMY de tipo CHAR (1) cuyo valor es 'X'.

Based on the below scenario, answer the question from 67 to 74.

Una organización tiene 14 empleados que trabajan con un salario fijo de 1000. La empresa contrata a 5 nuevos empleados cuyo salario aún no ha sido fijado por el departamento de nómina. Sin embargo, durante el procesamiento de fin de mes, el departamento de nómina de recursos humanos genera varios informes para conciliar los datos financieros de la organización. Examine la estructura de la tabla como se indica.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

67. What is the output of the below query?

SELECT SUM (salary ) FROM employees ;
  1. NULL
  2. 14000
  3. 19000
  4. 0

Answer: B. La función SUM suma los salarios de los empleados.

68. What is the output of the below query?

SELECT AVG (salary ) FROM employees ;
  1. 1000
  2. 736.84
  3. NULL
  4. 0

Answer: A. La función AVG (salario) calcula el promedio de los salarios e ignora los valores NULL. En este caso, AVG (salario) = (14 * 1000) / 14 = 1000.

69. What is the output of the below query?

SELECT AVG (nvl(salary ,0)) FROM employees ;
  1. 1000
  2. NULL
  3. 736.84
  4. 0

Answer: C. El AVG (NVL (salario, 0)) da un valor alternativo a los NULL y les permite participar en el cálculo promedio. En este caso, (14 * 1000) / 19 = 736,84.

70. What is the output of the below query?

SELECT VARIANCE (salary ) FROM employees ;
  1. 1000
  2. 0
  3. NULL
  4. 204678.36

Answer: B. VARIANCE (salario) calcula la variación de los valores de la columna de salario ignorando los valores NULL.

71. What is the output of the below query?

SELECT VARIANCE (nvl(salary ,0)) FROM employees ;
  1. 1000
  2. 0
  3. NULL
  4. 204678.36

Answer: D. VARIANCE (NL (salario, 0)) calcula la variación de los valores de la columna de salario, incluidos los NULL.

72. What is the output of the below query?

SELECT STDDEV (salary ) FROM employees ;
  1. 1
  2. 1000
  3. 0
  4. NULL

Answer: C. El STDDEV (salario) calcula la desviación estándar de los valores de la columna de salario ignorando los valores NULL.

73. What is the output of the below query?

SELECT STDDEV (nvl(salary ,0)) FROM employees ;
  1. 0
  2. 452.41
  3. 1000
  4. NULL

Answer: B. El STDDEV (nvl (salario, 0)) calcula la desviación estándar de los valores de la columna de salario, incluidos los valores NULL.

74. What is the output of the below query?

  1. 19,19
  2. 14,19
  3. 19,14
  4. 14,14

Answer: C. COUNT (*) incluye NULL mientras que COUNT (salario) ignora los valores NULL.

75. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

¿Cuál de las siguientes consultas le dará al departamento que tiene más de 5 empleados trabajando en él?

  1. SELECT department_id  FROM employees  WHERE COUNT(*) > 5 GROUP BY department_id ;
  2. SELECT department_id  FROM employees  HAVING COUNT(*) > 5;
  3. SELECT department_id  FROM employees  GROUP BY employee_id  HAVING COUNT(*) > 5;
  4. SELECT department_id  FROM employees  GROUP BY department_id  HAVING COUNT(*) > 5;

Answer: D.

76. Which of the following are true about the CUBE extension of GROUP BY?

  1. Permite realizar múltiples cláusulas GROUP BY con una sola consulta.
  2. Realiza agregaciones para todas las posibles combinaciones de columnas incluidas.
  3. Realiza niveles crecientes de subtotales acumulativos, según la lista de columnas proporcionada.
  4. Ninguna de las anteriores

Answer: B. CUBE, ROLLUP son las extensiones GROUP BY utilizadas para el procesamiento OLAP. CUBE agrega los resultados cada vez que se forma una nueva permutación de columna.

Use the following SELECT statement to answer below questions 77 to 82:

1 SELECT customer#, COUNT(*)
2 FROM customers JOIN orders USING (customer#)
3 WHERE orderdate > '02-APR-09'
4 GROUP BY customer#
5 HAVING COUNT(*) > 2;

77. Which line of the SELECT statement is used to restrict the number of records the query processes?

  1. 1
  2. 3
  3. 4
  4. 5

Answer: B. La cláusula WHERE se usa para restringir las filas antes de que se formen los grupos.

78. Which line of the SELECT statement is used to restrict groups displayed in the query results?

  1. 1
  2. 3
  3. 4
  4. 5

Answer: D. HAVING se utiliza para restringir los resultados del grupo una vez finalizado el procesamiento del grupo.

79. Which line of the SELECT statement is used to group data stored in the database?

  1. 1
  2. 3
  3. 4
  4. 5

Answer: C. La cláusula GROUP BY usa el grupo por columnas para agrupar los datos en la tabla.

80. Which clause must be included for the query to execute successfully?

  1. 1
  2. 3
  3. 4
  4. 5

Answer: C. Debido a que la cláusula SELECT contiene la columna CUSTOMER #, es obligatorio tener la cláusula GROUP BY con la columna CUSTOMER #.

81. What is the purpose of using COUNT(*) in the SELECT query?

  1. El número de registros en las tablas especificadas.
  2. El número de pedidos realizados por cada cliente.
  3. El número de valores NULL en las tablas especificadas
  4. El número de clientes que han realizado un pedido.

Answer: B. Cuenta el número de filas que se procesan en un grupo. En este caso, el grupo está formado por el cliente y COUNT (*) cuenta los pedidos realizados por cada cliente.

82. Which of the following functions can be used to determine the earliest ship date for all orders recently processed by JustLee Books?

  1. Función COUNT
  2. Función MAX
  3. Función MIN
  4. Función STDDEV

Answer: C. La función MIN se utiliza para recuperar el valor mínimo de la columna. Cuando se usa con columnas de fecha, obtiene la fecha mínima de la columna.

83. Which of the following is not a valid SELECT statement?

  1. SELECT STDDEV(retail) FROM books;
  2. SELECT AVG(SUM(retail)) FROM orders NATURAL JOIN orderitems NATURAL JOIN books GROUP BY customer#;
  3. SELECT order#, TO_CHAR(SUM(retail),'999.99') FROM orderitems JOIN books USING (isbn) GROUP BY order#;
  4. SELECT title, VARIANCE(retail-cost) FROM books GROUP BY pubid;

Answer: D. La cláusula GROUP BY debe especificar una columna o un conjunto de columnas contenidas en la cláusula SELECT. Aquí PUBID no está contenido en la cláusula SELECT, por lo que la consulta no es válida.

84. Which of the below statements are true about the nesting of group functions?

  1. La función más interna se resuelve primero.
  2. Oracle permite el anidamiento de funciones de grupo hasta en 3 niveles.
  3. Las funciones de una sola fila se pueden anidar con funciones de grupo.
  4. Oracle permite el anidamiento de funciones de grupo hasta en 2 niveles.

Answer: A, C, D. En una expresión que contiene funciones anidadas, la función más interna se ejecuta primero, cuyo resultado se alimenta a la siguiente función que se mueve hacia afuera. Las funciones de una sola fila se pueden utilizar bien con funciones de grupo que se pueden anidar como máximo en 2 niveles.

85. What are the statistical group functions in Oracle?

  1. AVG
  2. STDDEV
  3. VARIANCE
  4. STATS

Answer: B, C. VARIANCE y STATS son las funciones de grupo estadístico disponibles en Oracle SQL.

86. If the SELECT list contains a column and a group functions, which of the following clause must be mandatorily included?

  1. PEDIR POR
  2. HAVING
  3. AGRUPAR POR
  4. Ninguno de esos

Answer: C. La cláusula GROUP BY debe contener necesariamente la columna o conjunto de columnas contenidas en la cláusula SELECT.

87. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

¿Cuál es la mejor explicación de por qué NO se ejecutará esta instrucción SQL?

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. Los salarios no se pueden promediar ya que no todos los números se dividirán de manera uniforme.
  2. No puede utilizar un alias de columna en la cláusula GROUP BY.
  3. La cláusula GROUP BY debe tener algo para GROUP.
  4. La identificación del departamento no aparece en la tabla de departamentos.

Answer: B. Ni la cláusula GROUP BY ni la cláusula HAVING funcionan con alias de columna.

88. Which of the following data types are compatible with AVG, SUM, VARIANCE, and STDDEV functions?

  1. Solo tipos de datos numéricos
  2. Enteros solamente
  3. Cualquier tipo de datos
  4. Todo excepto numérico

Answer: A. Las funciones AVG, SUM, VARIANCE y STDDEV funcionan obligatoriamente solo con tipos de datos numéricos.

Examine the table structure as given below and answer the questions 89 and 90 that follow.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

89. Which of the below query will display the number of distinct job categories working in each department?

  1. SELECT department_id , COUNT(DISTINCT job) FROM employees  GROUP BY job;
  2. SELECT department_id , COUNT(job) FROM employees  GROUP BY employee_id ;
  3. SELECT department_id , COUNT(job) FROM employees  GROUP BY department_id ;
  4. SELECT department_id , COUNT(DISTINCT job) FROM employees  GROUP BY department_id ;

Answer: D. Utilice el modificador DISTINCT para filtrar los duplicados.

90. Evaluate this SQL statement:

SELECT employee_id , first_name , department_id , SUM(salary )
FROM employees 
WHERE salary  > 1000
GROUP BY department_id , employee_id , first_name 
ORDER BY hiredate;

¿Por qué esta declaración provocará un error?

  1. Falta la cláusula HAVING.
  2. La cláusula WHERE contiene un error de sintaxis.
  3. La columna SALARIO NO está incluida en la cláusula GROUP BY.
  4. La columna HIRE_DATE NO está incluida en la cláusula GROUP BY.

Answer: D. Todas las columnas que aparecen en la cláusula SELECT y ORDER BY deben incluirse en la cláusula GROUP BY.

91. Which of the following statements is true about the GROUP BY clause?

  1. Para excluir filas antes de dividirlas en grupos usando la cláusula GROUP BY, debe usar una cláusula WHERE.
  2. Debe utilizar la cláusula HAVING con la cláusula GROUP BY.
  3. El alias de columna se puede utilizar en una cláusula GROUP BY.
  4. De forma predeterminada, las filas no se ordenan cuando se usa una cláusula GROUP BY.

Answer: A. Con una cláusula WHERE, puede excluir filas antes de dividirlas en grupos.

92. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Interprete el resultado de la siguiente consulta.

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. La primera fecha de contratación en la organización.
  2. La última fecha de contratación en la organización.
  3. La fecha de contratación más temprana en un departamento.
  4. La última fecha de contratación en un departamento.

Answer: C. La consulta devuelve el primer empleado contratado en cada departamento.

93. Which statement about group functions is true?

  1. Funciones de grupo excepto COUNT (*), ignora los valores nulos.
  2. Una consulta que incluye una función de grupo en la lista SELECT debe incluir una cláusula GROUP BY.
  3. Las funciones de grupo se pueden utilizar en una cláusula WHERE.
  4. Las funciones de grupo solo se pueden utilizar en una lista SELECT.

Answer: A. Todas las funciones de grupo, excepto COUNT (*), ignoran los valores NULL. Es porque procesan los valores directamente contenidos en una columna específica.

94. Which of the following clauses represent valid uses of group functions?

  1. GRUPO POR MÁXIMO (salario)
  2. ORDEN POR AVG (salario)
  3. TENIENDO MAX (salario)> 10000
  4. SELECT AVG (NVL (salario, 0))

Answer: B, C, D. Las funciones de grupo solo pueden aparecer en las cláusulas SELECT, HAVING y ORDER BY.

95. Which of the following statements are true about the GROUP BY clause?

  1. La última columna enumerada en la cláusula GROUP BY es la agrupación más importante.
  2. La primera columna listada en la cláusula GROUP BY es la agrupación más importante.
  3. Una cláusula GROUP BY no se puede utilizar sin una cláusula ORDER BY.
  4. La cláusula GROUP BY no garantiza la clasificación de la salida.

Answer: B. La agrupación de datos se basa en la secuencia de columnas que aparecen en la cláusula GROUP BY.

96. What is difference between WHERE clause and HAVING clause?

  1. La cláusula WHERE restringe las filas antes de agrupar mientras que la cláusula HAVING restringe los grupos.
  2. La cláusula WHERE no puede contener una función de grupo, pero la cláusula HAVING puede tener.
  3. La cláusula WHERE puede unir varias condiciones mediante los operadores AND u OR, pero la cláusula HAVING no.
  4. La cláusula WHERE puede aparecer en la consulta SELECT sin la cláusula GROUP BY, pero la cláusula HAVING no.

Answer: A, B, D. La cláusula WHERE restringe las filas antes de agrupar, pero HAVING restringe los grupos.

97. Examine the table structure as given.

SQL> DESC employees
 Name			 Null?	  Type
 ----------------------- -------- ----------------
 EMPLOYEE_ID		 NOT NULL NUMBER(6)
 FIRST_NAME			  VARCHAR2(20)
 LAST_NAME		 NOT NULL VARCHAR2(25)
 EMAIL			 NOT NULL VARCHAR2(25)
 PHONE_NUMBER			  VARCHAR2(20)
 HIRE_DATE		 NOT NULL DATE
 JOB_ID 		 NOT NULL VARCHAR2(10)
 SALARY 			  NUMBER(8,2)
 COMMISSION_PCT 		  NUMBER(2,2)
 MANAGER_ID			  NUMBER(6)
 DEPARTMENT_ID			  NUMBER(4)

Predecir el resultado de la siguiente consulta.

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. Se ejecuta con éxito.
  2. Lanza un error porque la cláusula ORDER BY no es válida.
  3. Lanza un error porque la cláusula GROUP BY no es válida.
  4. Lanza un error porque las cláusulas GROUP BY y ORDER BY no se pueden usar juntas.

Answer: A. La cláusula ORDER BY puede usar las funciones de grupo para ordenar.