Usando as Perguntas de Funções de Grupo

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

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

Answer: C. NVL é uma função geral usada para fornecer um valor alternativo aos valores NULL. As funções MAX, MIN e AVG podem ser usadas como funções 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 as funções de grupo listadas podem ser usadas em uma consulta, desde que nenhuma outra coluna seja selecionada na 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. A função MAX pode ser usada para retornar o salário máximo em um departamento onde cada grupo é formado por um departamento.

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

  1. A função COUNT conta o número de linhas
  2. A função COUNT (*) conta o número de linhas com duplicatas e valores NULL
  3. A função COUNT (DISTINCT) conta o número de linhas distintas
  4. COUNT (*) é equivalente a COUNT (ALL)

Answer: B. O COUNT (*) conta o número de linhas, incluindo duplicatas e NULLs. Use as palavras-chave DISTINCT e ALL para restringir valores duplicados e NULL.

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

  1. Mesas Aninhadas
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. Os tipos de dados para as funções com um argumento podem ser CHAR, VARCHAR2, NUMBER ou 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. Lança uma exceção porque a função COUNT não funciona com valores NULL

Answer: A. O COUNT (*) conta o número de linhas, incluindo duplicatas e NULLs. Use as palavras-chave DISTINCT e ALL para restringir valores duplicados e 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. Lança uma exceção porque a função COUNT não funciona com valores NULL

Answer: C. COUNT (coluna) ignora os valores NULL, mas conta as duplicatas.

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. Lança uma exceção porque a função COUNT não funciona com valores NULL

Answer: C. COUNT (coluna ALL) ignora os valores NULL, mas conta as duplicatas.

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. Lança uma exceção porque a função COUNT não funciona com valores NULL

Answer: B. COUNT (coluna DISTINCT) conta os valores distintos não nulos.

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

SELECT COUNT() FROM dual;
  1. Executa com sucesso e não retorna nenhuma saída
  2. Executa com sucesso e retorna a saída como '1'
  3. Lança a exceção "ORA-00909: número inválido de argumentos"
  4. Lança a exceção "ORA-00904:" COUNT ": identificador inválido" porque a função COUNT não funciona com a tabela DUAL

Answer: C. A função COUNT requer, no mínimo, um argumento que pode ser a coluna com [ALL | DISTINCT] ou '*'.

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

Eu. A função aceita várias entradas numéricas e retorna a variação de todos os valores

ii. A função aceita uma coluna numérica e retorna a variação de todos os valores da coluna, incluindo NULLs

iii. A função aceita uma coluna de número e retorna a variação de todos os valores da coluna, exceto NULLs

Escolha a combinação correta das opções abaixo.

  1. eu e iii
  2. eu e ii
  3. ii
  4. iii

Answer: C. A função VARIANCE aceita argumento numérico único como o nome da coluna e retorna a variância de todos os valores da coluna considerando NULLs.

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

  1. GRUPO POR
  2. GRUPO SETS
  3. CUBE
  4. ROLLUP

Answer: A. As operações de GROUPING SETS podem ser usadas para executar várias agregações GROUP BY com uma única 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 é um grupo por função porque processa grupos de funcionários que trabalham em um departamento
  2. SUM é uma função agregada porque produz um resultado por grupo de dados
  3. SUM é uma função de linha única porque retorna um valor único para um grupo, ou seja, departamento
  4. SUM é uma função de grupo por extensão porque usa a cláusula GROUP BY para agrupar logicamente os departamentos

Answer: A. SUM é uma função de grupo que calcula a soma dos salários de um grupo de funcionários que trabalham em um 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 ONDE
  4. HAVING

Answer: D. A cláusula HAVING é usada para restringir os resultados do grupo. Você usa a cláusula HAVING para especificar os grupos que devem ser exibidos, restringindo ainda mais os grupos com base nas informações agregadas. A cláusula HAVING pode preceder a cláusula GROUP BY, mas é recomendado que você coloque a cláusula GROUP BY primeiro porque é mais lógica. Grupos são formados e funções de grupo são calculadas antes da cláusula HAVING ser aplicada aos grupos na 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. A consulta retorna o número de funcionários que não têm comissão
  2. A consulta gera um erro porque o sinal de igual não pode ser usado ao pesquisar por um valor NULL
  3. A consulta retorna o número de funcionários em um departamento cuja comissão é de valor NULL
  4. A consulta gera um erro porque a cláusula GROUP BY está ausente na consulta

Answer: B. Excluir NULLs usando a condição WHERE é uma forma de direcionar a consulta para ignorar NULLs. Mas aqui o uso do operador IS NULL está errado. A condição deve ser 'WHERE comm IS NULL'.

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

  1. A função MIN pode ser usada apenas com dados numéricos.
  2. A função MAX pode ser usada apenas com valores de data.
  3. A função AVG pode ser usada apenas com dados numéricos.
  4. A função SUM não pode fazer parte de uma função aninhada.

Answer: C. A função AVG só pode ser usada com valores numéricos. Outras funções com essa restrição são SUM, STDDEV e 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. Os apelidos de coluna não podem ser usados ​​na cláusula GROUP BY ou HAVING.

18. Which of the following statements is correct?

  1. A cláusula WHERE pode conter uma função de grupo apenas se a função também não estiver listada na cláusula SELECT.
  2. As funções de grupo não podem ser usadas nas cláusulas SELECT, FROM ou WHERE.
  3. A cláusula HAVING é sempre processada antes da cláusula WHERE.
  4. A cláusula GROUP BY é sempre processada antes da cláusula HAVING.

Answer: D. Embora o Oracle não gere erro se a cláusula HAVING preceder a cláusula GROUP BY, ele será processado somente após a cláusula GROUP BY ser processada e o grupo estiver pronto 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. A função COUNT pode ser usada para determinar quantas linhas contêm um valor NULL.
  2. Apenas valores distintos são incluídos nas funções de grupo, a menos que a palavra-chave ALL seja incluída na cláusula SELECT.
  3. A cláusula WHERE restringe quais linhas são processadas.
  4. A cláusula HAVING determina quais grupos são exibidos nos resultados da consulta.

Answer: C, D. A cláusula WHERE restringe as linhas antes de serem agrupadas e processadas, enquanto a cláusula HAVING restringe os 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. A cláusula GROUP BY deve conter todas as colunas, exceto aquela que é usada dentro da função 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. Nenhuma das acima

Answer: A.

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

1. Uma função de grupo pode ser aninhada dentro de uma função de grupo.

2. Uma função de grupo pode ser aninhada dentro de uma função de linha única.

3. Uma função de linha única pode ser aninhada dentro de uma função de grupo.

  1. 1
  2. 2
  3. 3
  4. 1 e 3

Answer: A, B, C. As funções de grupo podem ser aninhadas apenas até uma profundidade de dois. As funções de grupo podem ser aninhadas dentro de funções de linha única (AVG incorporado em uma função TO_CHAR). Além disso, funções de linha única podem ser aninhadas dentro de funções 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. A função SUM é usada para obter a adição 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. Nenhuma das acima

Answer: A. Visto que a categoria FAMILY deve ser restrita antes do agrupamento, as linhas da tabela devem ser filtradas usando a cláusula WHERE e não a 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 é uma função geral para fornecer valores alternativos aos valores NULL. Pode realmente fazer a diferença em cálculos aritméticos usando as funções de grupo AVG, STDDEV e VARIANCE.

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

  1. Você deve inserir a palavra-chave ALL em uma função de grupo para incluir todos os valores duplicados.
  2. A função AVG pode ser usada para encontrar a diferença média calculada entre duas datas.
  3. As funções MIN e MAX podem ser usadas em colunas VARCHAR2.
  4. Tudo acima

Answer: A. A palavra-chave ALL conta duplicatas, mas ignora NULLs. Duplicados também estão incluídos com '*' e a especificação do nome da coluna.

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 todos os clientes como um grupo, COUNT (referidos) contará apenas aqueles que foram indicados por alguém. COUNT (referido) irá ignorar os valores NULL da coluna.

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

1. SELEÇÃO

2. DE

3. ONDE

4. GRUPO POR

5. TER

6. ORDEM DE

  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. A ordem de processamento começa na cláusula FROM para obter os nomes das tabelas, restringindo as linhas usando a cláusula WHERE, agrupando-as usando a cláusula GROUP BY, restringindo os grupos usando a cláusula HAVING. A cláusula ORDER BY é a última a ser processada para classificar o conjunto de dados 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. GRUPO POR
  4. GROUPING

Answer: C. A cláusula GROUP BY forma os grupos de dados com base na lista de colunas 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. Instrução SELECT
  2. Cláusula WHERE
  3. Cláusula ORDER BY
  4. Cláusula GROUP BY

Answer: A, C, D. As funções de grupo podem aparecer nas cláusulas SELECT, ORDER BY e HAVING. O Oracle levanta uma exceção se as funções de grupo são usadas nas cláusulas WHERE ou 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. A função MIN retorna o salário mínimo em um 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. Ele gera um erro porque apenas uma função agregada pode ser usada em uma consulta.
  2. Ele lança um erro porque a cláusula GROUP BY está ausente.
  3. Ele é executado com sucesso e retorna os mesmos valores para ambos.
  4. É executado com sucesso onde COUNT (*) incluindo NULLs e COUNT (todas as com) excluindo NULLs.

Answer: D.

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

  1. Você pode usar funções de grupo em qualquer cláusula de uma instrução SELECT.
  2. Você pode usar funções de grupo apenas na lista de colunas da cláusula select e na cláusula WHERE de uma instrução SELECT.
  3. Você pode misturar colunas de linha única com funções de grupo na lista de colunas de uma instrução SELECT agrupando nas colunas de linha única.
  4. Você pode passar nomes de colunas, expressões, constantes ou funções como parâmetros para uma função de grupo.

Answer: C. As funções de grupo podem ser aninhadas apenas até uma profundidade de dois. As funções de grupo podem ser aninhadas dentro de funções de linha única (AVG incorporado em uma função TO_CHAR). Além disso, funções de linha única podem ser aninhadas dentro de funções 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 ;

Qual afirmação é verdadeira em relação à execução da afirmação acima?

  1. A vista será criada e você pode realizar operações DLM na vista
  2. A visão não será criada porque as instruções de junção não são permitidas para criar uma visão
  3. A visão não será criada porque a cláusula GROUP BY não é permitida para criar uma visão
  4. A visão será criada, mas nenhuma operação DML será permitida na visão

Answer: D. Regras para realizar operações DML em uma visualização. Você não pode adicionar dados por meio de uma exibição se a exibição incluir funções de grupo ou uma cláusula GROUP BY ou palavra-chave DISTINCT. A pseudocoluna ROWNUM palavra-chave Colunas definidas por expressões NOT NULL colunas nas tabelas base que não são selecionadas pela visão.

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

  1. Uma subconsulta que define uma visualização não pode incluir a cláusula GROUP BY
  2. Uma visualização é criada com a subconsulta com a palavra-chave DISTINCT pode ser atualizada
  3. Uma operação de linguagem de manipulação de dados (DML) pode ser executada em uma visão que é criada com a subconsulta tendo todas as colunas NOT NULL de uma tabela
  4. Uma visualização que é criada com a subconsulta tendo a pseudocoluna ROWNUM palavra-chave não pode ser atualizada

Answer: C, D. Regras para realizar operações DML em uma visualização. Você não pode adicionar dados por meio de uma exibição se a exibição incluir funções de grupo ou uma cláusula GROUP BY ou palavra-chave DISTINCT. A pseudocoluna ROWNUM palavra-chave Colunas definidas por expressões NOT NULL colunas nas tabelas base que não são selecionadas pela visão.

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)

Qual cláusula na consulta SQL abaixo gera erro?

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. ORDENAR POR
  4. GRUPO POR

Answer: D. A cláusula GROUP BY deve conter todas as colunas que aparecem na instrução SELECT. Ele gera um erro porque JOB não é uma coluna selecionada. Ele deveria ter usado DEPARTMENT_ID no 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)

Qual das seguintes consultas SELECT exibirá o salário máximo e mínimo recebido por cada categoria de trabalho?

  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. Duas funções agregadas não podem ser usadas juntas na instrução SELECT.

Answer: B. Mais de uma função de grupo pode aparecer na instrução 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 o erro na consulta abaixo.

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. Ele é executado com sucesso e gera o resultado necessário.
  2. Ele produz um erro porque COUNT (*) também deve ser especificado na cláusula SELECT.
  3. É executado com sucesso, mas não produz nenhum resultado porque COUNT (prod_id) deve ser usado em vez de COUNT (*).
  4. Isso produz um erro porque COUNT (*) deve estar apenas na cláusula HAVING e não na cláusula WHERE.

Answer: D. As funções de grupo não podem ser usadas na cláusula WHERE. O pode aparecer nas cláusulas SELECT, HAVING e 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)

Preveja o resultado da consulta abaixo

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. Ele é executado com êxito e lista a contagem de funcionários em cada categoria de trabalho, mas ignora a cláusula HAVING, pois "salário" não está na cláusula GROUP BY.
  2. Ele gera um erro porque a cláusula HAVING é inválida.
  3. Ele gera um erro porque "salário" não está incluído na cláusula GROUP BY.
  4. É executado com sucesso e lista a contagem de funcionários em cada categoria com soma de salário superior a 5000.

Answer: D. A cláusula HAVING restringe os resultados do grupo. A função COUNT é usada para contar enquanto SUM é usada para adicionar os valores numéricos.

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

  1. As funções de grupo em colunas ignoram valores NULL.
  2. As funções de grupo em colunas que retornam datas incluem valores NULL.
  3. As funções de grupo em colunas que retornam números incluem valores NULL.
  4. As funções de grupo em colunas não podem ser usadas com precisão em colunas que contêm valores NULL.

Answer: A. Exceto a função COUNT, todas as funções de grupo ignoram os valores NULL.

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

  1. As subconsultas podem conter cláusulas GROUP BY e ORDER BY.
  2. As subconsultas não podem conter cláusulas GROUP BY e ORDER BY.
  3. As subconsultas podem conter ORDER BY, mas não a cláusula GROUP BY.
  4. As subconsultas não podem conter ORDER BY, mas podem ter uma cláusula GROUP BY.

Answer: A. Como a consulta primária, uma subconsulta pode conter uma cláusula GROUP BY e também 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. Ele é executado com sucesso.
  2. Fornece um erro porque a cláusula HAVING não é válida.
  3. Isso dá um erro porque a expressão GROUP BY não é válida.
  4. Ele fornece um erro porque as funções agregadas não podem ser aninhadas na instrução SELECT.

Answer: B. A cláusula HAVING não permite o aninhamento de funções agregadas.

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. Isso dá erro porque uma função agregada não pode aparecer logo após a cláusula SELECT.
  2. Fornece erro porque a cláusula GROUP BY é inválida.
  3. Ele é executado sem erros, mas não produz saída.
  4. Executa com sucesso e dá salário médio em cada departamento.

Answer: D. As funções de grupo podem ser usadas em qualquer sequência (antes ou depois do grupo por colunas) em uma consulta SELECT.

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. Ele é executado com sucesso e exibe "job" em letras minúsculas.
  2. Ele é executado com sucesso, mas exibe "job" no caso original.
  3. Ele gera um erro porque as funções de linha única e agregação não podem ser usadas juntas.
  4. Ele lança um erro porque a conversão de caso na lista SELECT não corresponde à cláusula GROUP BY de conversão de caso.

Answer: D. A função LOWER, sendo uma função de linha única, deve ser especificada na cláusula GROUP BY para basear o agrupamento dos dados 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. A primeira consulta opera de todos os dados EMPLOYEES enquanto a segunda processa os dados em 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. Ele é executado com sucesso e exibe o salário médio dos departamentos acima de 10.
  2. Ele gera um erro porque a coluna não agregada não pode ser usada na cláusula HAVING.
  3. É executado com sucesso, mas exibe resultados incorretos para os departamentos.
  4. Ele gera um erro porque a cláusula HAVING deve ser colocada antes da cláusula GROUP BY.

Answer: A. As expressões GROUP BY podem ser usadas na cláusula HAVING para filtrar os grupos do conjunto de dados 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. Ele gera um erro porque várias condições não podem ser fornecidas na cláusula HAVING.
  2. Ele gera um erro porque uma coluna não agregada não pode ser usada na cláusula HAVING.
  3. É executado com sucesso e exibe o salário médio do departamento maior que 10 e maior que 2.000.
  4. Ele é executado com sucesso, mas nenhum resultado é exibido.

Answer: C. A cláusula HAVING pode impor várias condições unidas usando o filtro de operador AND ou OR dos 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. As funções de grupo AVG e SUM podem ser usadas apenas com dados numéricos.

51. Which of the following statements are true?

  1. AVG e SUM podem ser usados ​​apenas com tipos de dados numéricos.
  2. STDDEV e VARIANCE podem ser usados ​​apenas com tipos de dados numéricos.
  3. MAX pode ser usado com o tipo de dados LONG.
  4. MAX e MIN não podem ser usados ​​com tipos de dados LOB ou LONG.

Answer: A, B, D. As funções de grupo AVG, SUM, VARIANCE e STDDEV podem ser usadas apenas com dados numéricos. Nenhuma das funções de grupo pode ser usada com o tipo de dados 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 o erro na consulta abaixo.

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. Várias funções agregadas não podem ser usadas em uma única consulta SELECT
  2. A cláusula GROUP BY é inválida
  3. A função COUNT não pode ser usada com valores DATE
  4. Sem erros e é executado com sucesso

Answer: D.

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

  1. MAX
  2. MIN
  3. COUNT
  4. Nenhum desses

Answer: D. Nenhuma função agregada pode ser usada com tipos de dados 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)

Preveja o resultado das duas consultas abaixo

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. Ambas as consultas produzem o mesmo resultado
  2. Query - 1 e Query - 2 produzem resultados diferentes porque Query-1 considera valores NULL de COMM e Query-2 substitui valores NULL de COMM por zero
  3. Consulta - 1 produz erro porque COMM tem valores NULL
  4. A consulta - 2 produz erro porque o NVL não pode ser aninhado com a função de agregação.

Answer: B. A função AVG ignora os valores NULL ao calcular a média dos dados numéricos. AVG (coluna) calculará a média apenas para valores não nulos. No entanto, se NVL for usado para substituir NULLs por um zero, todos os valores serão considerados.

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

  1. O alias da coluna pode ser usado na cláusula GROUP BY.
  2. A coluna GROUP BY deve estar na cláusula SELECT.
  3. A cláusula GROUP BY deve aparecer junto com a cláusula HAVING em uma consulta SELECT.
  4. A cláusula GROUP BY deve aparecer após a cláusula WHERE em uma consulta SELECT.

Answer: D. De acordo com a sequência de processamento, a cláusula GROUP BY deve aparecer após a cláusula WHERE em uma 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)

Preveja o resultado da consulta abaixo

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. Ele gera um erro porque a lista de colunas GROUP BY não corresponde à lista de colunas SELECT.
  2. É executado com sucesso e produz salário médio de uma categoria de trabalho em cada departamento.
  3. É executado com sucesso e produz salário médio para um departamento em cada categoria de trabalho.
  4. Ele gera um erro porque as cláusulas GROUP BY e ORDER BY têm listas de colunas diferentes.

Answer: B. Embora a cláusula GROUP BY classifique os grupos implicitamente, as cláusulas GROUP BY e ORDER BY podem ser usadas juntas em uma consulta.

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

  1. WHERE
  2. HAVING
  3. GRUPO POR
  4. ORDENAR POR

Answer: B. A cláusula HAVING é usada para restringir os 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. Ele é executado com sucesso.
  2. Ele gera um erro porque a cláusula HAVING precede a cláusula GROUP BY.
  3. Ele gera um erro porque a cláusula HAVING usa a função agregada.
  4. Ele é executado, mas nenhum resultado é exibido porque a cláusula HAVING precede a cláusula GROUP BY.

Answer: A. A cláusula HAVING pode preceder a cláusula GROUP BY, mas é processada apenas depois que os resultados do grupo são calculados.

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. Ele retorna um erro porque o operador BETWEEN não pode ser usado na cláusula HAVING.
  2. Ele retorna um erro porque as cláusulas WHERE e HAVING não podem ser usadas na mesma instrução SELECT.
  3. Ele retorna um erro porque as cláusulas WHERE e HAVING não podem ser usadas para aplicar condições na mesma coluna.
  4. Ele é executado com sucesso.

Answer: D. A cláusula WHERE restringe o número de linhas que participam do processamento da cláusula de grupo.

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

  1. A cláusula HAVING pode ser usada com funções de grupo em subconsultas.
  2. A cláusula WHERE pode ser usada para excluir linhas após dividi-las em grupos.
  3. A cláusula WHERE pode ser usada para excluir linhas antes de dividi-las em grupos.
  4. As cláusulas WHERE e HAVING podem ser usadas na mesma instrução apenas se forem aplicadas a colunas diferentes na tabela.

Answer: A, C. As cláusulas WHERE e HAVING podem ser usadas juntas em uma consulta. WHERE exclui as linhas antes do processamento do grupo, enquanto HAVING restringe os 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. Ele lança um erro porque as funções de agregação usadas na cláusula HAVING devem estar na lista SELECT.
  2. Ele lança um erro porque a cláusula HAVING aparece antes da cláusula GROUP BY.
  3. Mostra os departamentos cujo salário médio é superior ao salário mínimo do departamento.
  4. Apresenta os departamentos cujo salário médio é superior ao salário mínimo da organização.

Answer: C. As funções de grupo podem ser usadas pela cláusula HAVING para filtrar os grupos.

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. Calcula a soma das médias de comprimento do nome do funcionário em cada departamento.
  2. Ele calcula o comprimento médio do nome do funcionário em cada departamento.
  3. Ele gera um erro porque a função de linha única não pode ser usada com funções de grupo.
  4. Ele lança um erro porque a coluna de grupo DEPARTMENT_ID não é usada na lista SELECT.

Answer: A. As funções de grupo podem ser usadas com uma única linha ou funções gerais na consulta SELECT.

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

  1. 1
  2. 2
  3. 3
  4. Sem limites

Answer: B. As funções de grupo podem ser aninhadas no máximo em 2 níveis. No entanto, as funções de uma única linha podem ser aninhadas em qualquer número de níveis.

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

  1. 1
  2. 2
  3. 3
  4. Sem Limite

Answer: D. Não há limite para o número de grupos e subgrupos que podem ser formados.

65. Choose the correct statements about the HAVING clause.

  1. A cláusula HAVING é uma cláusula opcional na instrução SELECT.
  2. A cláusula HAVING é obrigatória se a instrução SELECT usar uma cláusula GROUP BY.
  3. A cláusula HAVING pode aparecer em uma instrução SELECT apenas se ela usar uma cláusula GROUP BY.
  4. A cláusula HAVING é obrigatória se a instrução SELECT usar uma cláusula GROUP BY.

Answer: A, C. A cláusula HAVING só pode aparecer em uma consulta se a cláusula GROUP BY estiver presente, mas vice-versa, não é verdade.

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. Lança um erro porque as funções de grupo não podem ser aplicadas na tabela DUAL.

Answer: A. A tabela DUAL contém uma única coluna DUMMY do tipo CHAR (1) cujo valor é 'X'.

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

Uma organização tem 14 funcionários que trabalham com um salário fixo de 1.000. A empresa recruta 5 novos funcionários cujo salário ainda não foi fixado pelo departamento de folha de pagamento. Porém, durante o processamento de final de mês, o departamento de folha de pagamento de RH gera vários relatórios para reconciliar os dados financeiros da organização. Examine a estrutura da tabela conforme fornecida.

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. A função SUM adiciona os salários dos funcionários.

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. A função AVG (salário) calcula a média dos salários e ignora os valores NULL. Nesse caso, AVG (salário) = (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. O AVG (NVL (salário, 0)) fornece um valor alternativo para os NULLs e permite que eles participem do cálculo da média. Nesse 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. A VARIANCE (salário) calcula a variação dos valores da coluna de salário, ignorando os NULLs.

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. O VARIANCE (NL (salário, 0)) calcula a variação dos valores da coluna de salário incluindo NULLs.

72. What is the output of the below query?

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

Answer: C. O STDDEV (salário) calcula o desvio padrão dos valores da coluna de salário, ignorando NULLs.

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. O STDDEV (nvl (salário, 0)) calcula o desvio padrão dos valores da coluna de salário incluindo NULLs.

74. What is the output of the below query?

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

Answer: C. COUNT (*) inclui NULLs enquanto COUNT (salário) ignora 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)

Qual das perguntas abaixo dará ao departamento que tem mais de 5 funcionários trabalhando nele?

  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 executar várias cláusulas GROUP BY com uma única consulta.
  2. Executa agregações para todas as combinações possíveis de colunas incluídas.
  3. Executa níveis crescentes de subtotais cumulativos, com base na lista de colunas fornecida.
  4. Nenhuma das acima

Answer: B. CUBE, ROLLUP são as extensões GROUP BY usadas para processamento OLAP. CUBE agrega os resultados sempre que uma nova permutação de coluna é formada.

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. A cláusula WHERE é usada para restringir as linhas antes que os grupos sejam formados.

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 é usado para restringir os resultados do grupo após o término do processamento do 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. A cláusula GROUP BY usa o grupo por colunas para agrupar os dados na tabela.

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

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

Answer: C. Como a cláusula SELECT contém a coluna CUSTOMER #, é obrigatório ter a cláusula GROUP BY com a coluna CUSTOMER #.

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

  1. O número de registros nas tabelas especificadas
  2. O número de pedidos feitos por cada cliente
  3. O número de valores NULL nas tabelas especificadas
  4. O número de clientes que fizeram um pedido

Answer: B. Ele conta o número de linhas processadas em um grupo. Neste caso, o grupo é formado pelo cliente e COUNT (*) conta os pedidos feitos 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. Função COUNT
  2. Função MAX
  3. Função MIN
  4. Função STDDEV

Answer: C. A função MIN é usada para recuperar o menor valor da coluna. Quando usado com colunas de data, busca a data mínima da coluna.

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. A cláusula GROUP BY deve especificar uma coluna ou conjunto de colunas contidas na cláusula SELECT. Aqui, PUBID não está contido na cláusula SELECT, portanto, a consulta não é válida.

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

  1. A função mais interna é resolvida primeiro.
  2. O Oracle permite o aninhamento de funções de grupo em até 3 níveis.
  3. Funções de linha única podem ser aninhadas com funções de grupo.
  4. O Oracle permite aninhamento de funções de grupo em até 2 níveis.

Answer: A, C, D. Em uma expressão que contém funções aninhadas, a função mais interna é executada primeiro, cujo resultado é alimentado na próxima função, movendo-se na direção externa. As funções de linha única podem ser bem utilizadas com funções de grupo que podem ser aninhadas no máximo em até 2 níveis.

85. What are the statistical group functions in Oracle?

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

Answer: B, C. VARIANCE e STATS são as funções de grupo estatístico disponíveis no Oracle SQL.

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

  1. ORDENAR POR
  2. HAVING
  3. GRUPO POR
  4. Nenhum desses

Answer: C. A cláusula GROUP BY deve necessariamente conter a coluna ou conjunto de colunas contidas na 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)

Qual é a melhor explicação de por que essa instrução SQL NÃO será executada?

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. A média dos salários não pode ser calculada, pois nem todos os números serão divididos igualmente.
  2. Você não pode usar um alias de coluna na cláusula GROUP BY.
  3. A cláusula GROUP BY deve ter algo para GROUP.
  4. O ID do departamento não está listado na tabela de departamentos.

Answer: B. Nem a cláusula GROUP BY nem a cláusula HAVING funcionam com o alias da coluna.

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

  1. Apenas tipos de dados numéricos
  2. Apenas inteiros
  3. Qualquer tipo de dados
  4. Tudo exceto numérico

Answer: A. As funções AVG, SUM, VARIANCE e STDDEV funcionam obrigatoriamente apenas com tipos de dados 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. Use o modificador DISTINCT para filtrar as duplicatas.

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 que esta declaração causará um erro?

  1. A cláusula HAVING está faltando.
  2. A cláusula WHERE contém um erro de sintaxe.
  3. A coluna SALARY NÃO está incluída na cláusula GROUP BY.
  4. A coluna HIRE_DATE NÃO está incluída na cláusula GROUP BY.

Answer: D. Todas as colunas que aparecem nas cláusulas SELECT e ORDER BY devem ser incluídas na cláusula GROUP BY.

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

  1. Para excluir linhas antes de dividi-las em grupos usando a cláusula GROUP BY, você deve usar uma cláusula WHERE.
  2. Você deve usar a cláusula HAVING com a cláusula GROUP BY.
  3. O alias da coluna pode ser usado em uma cláusula GROUP BY.
  4. Por padrão, as linhas não são classificadas quando uma cláusula GROUP BY é usada.

Answer: A. Usando uma cláusula WHERE, você pode excluir linhas antes de dividi-las em 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 o resultado da consulta abaixo.

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. A data de contratação mais antiga na organização.
  2. A última data de contratação na organização.
  3. A primeira data de contratação em um departamento.
  4. A última data de contratação em um departamento.

Answer: C. A consulta retorna o primeiro funcionário contratado em cada departamento.

93. Which statement about group functions is true?

  1. Funções de grupo, exceto COUNT (*), ignora valores nulos.
  2. Uma consulta que inclui uma função de grupo na lista SELECT deve incluir uma cláusula GROUP BY.
  3. As funções de grupo podem ser usadas em uma cláusula WHERE.
  4. As funções de grupo só podem ser usadas em uma lista SELECT.

Answer: A. Todas as funções de grupo, exceto COUNT (*), ignoram os valores NULL. É porque eles processam os valores contidos diretamente em uma coluna específica.

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

  1. GROUP BY MAX (salário)
  2. ORDER BY AVG (salário)
  3. HAVING MAX (salário)> 10.000
  4. SELECIONE AVG (NVL (salário, 0))

Answer: B, C, D. As funções de grupo podem aparecer apenas nas cláusulas SELECT, HAVING e ORDER BY.

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

  1. A última coluna listada na cláusula GROUP BY é o agrupamento mais importante.
  2. A primeira coluna listada na cláusula GROUP BY é o agrupamento mais importante.
  3. Uma cláusula GROUP BY não pode ser usada sem uma cláusula ORDER BY.
  4. A cláusula GROUP BY não garante a classificação da saída.

Answer: B. O agrupamento de dados é baseado na sequência de colunas que aparecem na cláusula GROUP BY.

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

  1. A cláusula WHERE restringe as linhas antes do agrupamento, enquanto a cláusula HAVING restringe os grupos.
  2. A cláusula WHERE não pode conter uma função de grupo, mas a cláusula HAVING pode ter.
  3. A cláusula WHERE pode unir várias condições usando os operadores AND ou OR, mas a cláusula HAVING não.
  4. A cláusula WHERE pode aparecer na consulta SELECT sem a cláusula GROUP BY, mas a cláusula HAVING não.

Answer: A, B, D. A cláusula WHERE restringe as linhas antes do agrupamento, mas HAVING restringe os 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)

Preveja o resultado da consulta abaixo.

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. Ele é executado com sucesso.
  2. Ele lança um erro porque a cláusula ORDER BY é inválida.
  3. Ele gera um erro porque a cláusula GROUP BY é inválida.
  4. Ele gera um erro porque as cláusulas GROUP BY e ORDER BY não podem ser usadas juntas.

Answer: A. A cláusula ORDER BY pode usar as funções de grupo para classificação.