Utilisation des questions sur les fonctions de groupe

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

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

Answer: C. NVL est une fonction générale utilisée pour fournir une valeur alternative aux valeurs NULL. Les fonctions MAX, MIN et AVG peuvent être utilisées comme fonctions 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. Toutes les fonctions de groupe répertoriées peuvent être utilisées dans une requête à condition qu'aucune autre colonne ne soit sélectionnée dans la requête 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 fonction MAX peut être utilisée pour renvoyer le salaire maximum dans un département où chaque groupe est formé par un département.

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

  1. La fonction COUNT compte le nombre de lignes
  2. La fonction COUNT (*) compte le nombre de lignes avec des doublons et des valeurs NULL
  3. La fonction COUNT (DISTINCT) compte le nombre de lignes distinctes
  4. COUNT (*) équivaut à COUNT (ALL)

Answer: B. COUNT (*) compte le nombre de lignes, y compris les doublons et les NULL. Utilisez les mots clés DISTINCT et ALL pour limiter les valeurs en double et NULL.

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

  1. Tables imbriquées
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. Les types de données pour les fonctions avec un argument peuvent être 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. Lève une exception car la fonction COUNT ne fonctionne pas avec les valeurs NULL

Answer: A. COUNT (*) compte le nombre de lignes, y compris les doublons et les NULL. Utilisez les mots clés DISTINCT et ALL pour limiter les valeurs en double et 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. Lève une exception car la fonction COUNT ne fonctionne pas avec les valeurs NULL

Answer: C. COUNT (colonne) ignore les valeurs NULL mais compte les doublons.

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. Lève une exception car la fonction COUNT ne fonctionne pas avec les valeurs NULL

Answer: C. COUNT (colonne ALL) ignore les valeurs NULL mais compte les doublons.

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. Lève une exception car la fonction COUNT ne fonctionne pas avec les valeurs NULL

Answer: B. COUNT (colonne DISTINCT) compte les valeurs distinctes non nulles.

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

SELECT COUNT() FROM dual;
  1. S'exécute avec succès et ne renvoie aucune sortie
  2. S'exécute avec succès et renvoie la sortie comme «1»
  3. Lance l'exception "ORA-00909: nombre d'arguments non valide"
  4. Lève l'exception "ORA-00904:" COUNT ": identifiant invalide" car la fonction COUNT ne fonctionne pas avec la table DUAL

Answer: C. La fonction COUNT nécessite au minimum un argument qui peut être la colonne avec [ALL | DISTINCT] ou '*'.

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

je. La fonction accepte plusieurs entrées numériques et renvoie la variance de toutes les valeurs

ii. La fonction accepte une colonne numérique et renvoie la variance de toutes les valeurs de colonne, y compris les valeurs NULL

iii. La fonction accepte une colonne numérique et renvoie la variance de toutes les valeurs de colonne à l'exclusion des valeurs NULL

Choisissez la bonne combinaison parmi les options ci-dessous.

  1. i et iii
  2. i et ii
  3. ii
  4. iii

Answer: C. La fonction VARIANCE accepte un argument numérique unique comme nom de colonne et renvoie la variance de toutes les valeurs de colonne en considérant NULL.

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

  1. PAR GROUPE
  2. GROUPEMENT D'ENSEMBLES
  3. CUBE
  4. ROLLUP

Answer: A. Les opérations GROUPING SETS peuvent être utilisées pour effectuer plusieurs agrégations GROUP BY avec une seule requête.

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 est un groupe par fonction car il traite un groupe d'employés travaillant dans un service
  2. SUM est une fonction d'agrégation car elle produit un résultat par groupe de données
  3. SUM est une fonction à une seule ligne car elle renvoie une valeur unique pour un groupe, c'est-à-dire un département
  4. SUM est une fonction de groupe par extension car elle utilise la clause GROUP BY pour regrouper logiquement les départements

Answer: A. SUM est une fonction de groupe qui calcule la somme des salaires d'un groupe d'employés travaillant dans un service.

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

  1. WHERE
  2. LIMIT
  3. GROUPE O
  4. HAVING

Answer: D. La clause HAVING est utilisée pour restreindre les résultats de groupe. Vous utilisez la clause HAVING pour spécifier les groupes à afficher, limitant ainsi davantage les groupes sur la base d'informations agrégées. La clause HAVING peut précéder la clause GROUP BY, mais il est recommandé de placer la clause GROUP BY en premier car elle est plus logique. Les groupes sont formés et les fonctions de groupe sont calculées avant que la clause HAVING ne soit appliquée aux groupes de la liste 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 requête renvoie le nombre d'employés qui n'ont pas de commission
  2. La requête génère une erreur car le signe égal ne peut pas être utilisé lors de la recherche d'une valeur NULL
  3. La requête renvoie le nombre d'employés dans un service dont la commission est NULL
  4. La requête génère une erreur car la clause GROUP BY est manquante dans la requête

Answer: B. L'exclusion des NULL à l'aide de la condition WHERE est un moyen de diriger la requête pour ignorer les NULL. Mais ici, l'utilisation de l'opérateur IS NULL est erronée. La condition doit être «WHERE comm IS NULL».

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

  1. La fonction MIN ne peut être utilisée qu'avec des données numériques.
  2. La fonction MAX ne peut être utilisée qu'avec des valeurs de date.
  3. La fonction AVG ne peut être utilisée qu'avec des données numériques.
  4. La fonction SOMME ne peut pas faire partie d'une fonction imbriquée.

Answer: C. La fonction AVG ne peut être utilisée qu'avec des valeurs numériques. Les autres fonctions qui ont une telle restriction sont SUM, STDDEV et 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. Les alias de colonne ne peuvent pas être utilisés dans la clause GROUP BY ou HAVING.

18. Which of the following statements is correct?

  1. La clause WHERE ne peut contenir une fonction de groupe que si la fonction n'est pas également répertoriée dans la clause SELECT.
  2. Les fonctions de groupe ne peuvent pas être utilisées dans les clauses SELECT, FROM ou WHERE.
  3. La clause HAVING est toujours traitée avant la clause WHERE.
  4. La clause GROUP BY est toujours traitée avant la clause HAVING.

Answer: D. Bien qu'Oracle ne génère pas d'erreur si la clause HAVING précède la clause GROUP BY, elle n'est traitée qu'après le traitement de la clause GROUP BY et le groupe prêt à être filtré.

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 fonction COUNT peut être utilisée pour déterminer combien de lignes contiennent une valeur NULL.
  2. Seules des valeurs distinctes sont incluses dans les fonctions de groupe, sauf si le mot clé ALL est inclus dans la clause SELECT.
  3. La clause WHERE limite les lignes traitées.
  4. La clause HAVING détermine les groupes affichés dans les résultats de la requête.

Answer: C, D. La clause WHERE restreint les lignes avant qu'elles ne soient groupées et traitées tandis que la clause HAVING restreint les groupes.

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 clause GROUP BY doit contenir toutes les colonnes sauf celle qui est utilisée dans la fonction de groupe.

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. Aucune de ces réponses

Answer: A.

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

1. Une fonction de groupe peut être imbriquée dans une fonction de groupe.

2. Une fonction de groupe peut être imbriquée dans une fonction à une seule ligne.

3. Une fonction à une seule ligne peut être imbriquée dans une fonction de groupe.

  1. 1
  2. 2
  3. 3
  4. 1 et 3

Answer: A, B, C. Les fonctions de groupe ne peuvent être imbriquées que sur une profondeur de deux. Les fonctions de groupe peuvent être imbriquées dans des fonctions à une seule ligne (AVG intégré dans une fonction TO_CHAR). De plus, les fonctions à une seule ligne peuvent être imbriquées dans des fonctions de groupe.

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 fonction SOMME est utilisée pour obtenir l'ajout de valeurs numériques.

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. Aucune de ces réponses

Answer: A. Étant donné que la catégorie FAMILY doit être restreinte avant le regroupement, les lignes de la table doivent être filtrées à l'aide de la clause WHERE et non de la clause 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 est une fonction générale pour fournir des valeurs alternatives aux valeurs NULL. Cela peut vraiment faire une différence dans les calculs arithmétiques à l'aide des fonctions de groupe AVG, STDDEV et VARIANCE.

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

  1. Vous devez entrer le mot-clé ALL dans une fonction de groupe pour inclure toutes les valeurs en double.
  2. La fonction AVG peut être utilisée pour trouver la différence moyenne calculée entre deux dates.
  3. Les fonctions MIN et MAX peuvent être utilisées sur les colonnes VARCHAR2.
  4. Tout ce qui précède

Answer: A. Le mot clé ALL compte les doublons mais ignore les valeurs NULL. Les doublons sont également inclus avec «*» et la spécification de nom de colonne.

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. En considérant tous les clients comme un seul groupe, COUNT (parrainé) ne comptera que ceux qui sont référés par quelqu'un. COUNT (référencé) ignorera les valeurs NULL de la colonne.

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

1.SÉLECTIONNER

2.DE

3. O

4. GROUPE PAR

5. AVOIR

6.ORDER PAR

  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. L'ordre de traitement commence à partir de la clause FROM pour obtenir les noms de table, puis en restreignant les lignes à l'aide de la clause WHERE, en les regroupant à l'aide de la clause GROUP BY, en restreignant les groupes à l'aide de la clause HAVING. La clause ORDER BY est la dernière à être traitée pour trier l'ensemble de données 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. PAR GROUPE
  4. GROUPING

Answer: C. La clause GROUP BY forme les groupes de données en fonction de la liste de colonnes spécifiée.

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. Instruction SELECT
  2. Clause WHERE
  3. Clause ORDER BY
  4. Clause GROUP BY

Answer: A, C, D. Les fonctions de groupe peuvent apparaître dans les clauses SELECT, ORDER BY et HAVING. Oracle lève une exception si les fonctions de groupe sont utilisées dans les clauses 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. La fonction MIN renvoie le salaire minimum dans un groupe formé par département.

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. Cela génère une erreur car une seule fonction d'agrégation peut être utilisée dans une requête.
  2. Il génère une erreur car la clause GROUP BY est manquante.
  3. Il s'exécute avec succès et renvoie les mêmes valeurs pour les deux.
  4. Il s'exécute avec succès où COUNT (*) y compris NULL et COUNT (toutes les communications) à l'exclusion de NULL.

Answer: D.

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

  1. Vous pouvez utiliser des fonctions de groupe dans n'importe quelle clause d'une instruction SELECT.
  2. Vous ne pouvez utiliser les fonctions de groupe que dans la liste des colonnes de la clause select et dans la clause WHERE d'une instruction SELECT.
  3. Vous pouvez mélanger des colonnes à une seule ligne avec des fonctions de groupe dans la liste de colonnes d'une instruction SELECT en regroupant sur les colonnes à une seule ligne.
  4. Vous pouvez transmettre des noms de colonne, des expressions, des constantes ou des fonctions en tant que paramètre à une fonction de groupe.

Answer: C. Les fonctions de groupe ne peuvent être imbriquées que sur une profondeur de deux. Les fonctions de groupe peuvent être imbriquées dans des fonctions à une seule ligne (AVG intégré dans une fonction TO_CHAR). De plus, les fonctions à une seule ligne peuvent être imbriquées dans des fonctions de groupe.

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 ;

Quelle déclaration est vraie concernant l'exécution de la déclaration ci-dessus?

  1. La vue sera créée et vous pourrez effectuer des opérations DLM sur la vue
  2. La vue ne sera pas créée car les instructions de jointure ne sont pas autorisées pour créer une vue
  3. La vue ne sera pas créée car la clause GROUP BY n'est pas autorisée pour créer une vue
  4. La vue sera créée mais aucune opération DML ne sera autorisée sur la vue

Answer: D. Règles d'exécution d'opérations DML sur une vue. Vous ne pouvez pas ajouter de données via une vue si la vue comprend des fonctions de groupe ou une clause GROUP BY ou un mot clé DISTINCT. Mot clé de la pseudo-colonne ROWNUM Colonnes définies par des expressions NOT NULL colonnes dans les tables de base qui ne sont pas sélectionnées par la vue.

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

  1. Une sous-requête qui définit une vue ne peut pas inclure la clause GROUP BY
  2. Une vue est créée avec la sous-requête ayant le mot clé DISTINCT peut être mise à jour
  3. Une opération DML (Data Manipulation Language) peut être effectuée sur une vue créée avec la sous-requête contenant toutes les colonnes NOT NULL d'une table
  4. Une vue créée avec la sous-requête ayant le mot clé de pseudo-colonne ROWNUM ne peut pas être mise à jour

Answer: C, D. Règles d'exécution d'opérations DML sur une vue. Vous ne pouvez pas ajouter de données via une vue si la vue comprend des fonctions de groupe ou une clause GROUP BY ou un mot clé DISTINCT. Mot clé de la pseudo-colonne ROWNUM Colonnes définies par des expressions NOT NULL colonnes dans les tables de base qui ne sont pas sélectionnées par la vue.

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)

Quelle clause de la requête SQL ci-dessous génère une erreur?

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. COMMANDÉ PAR
  4. PAR GROUPE

Answer: D. La clause GROUP BY doit contenir toutes les colonnes apparaissant dans l'instruction SELECT. Cela génère une erreur car JOB n'est pas une colonne sélectionnée. Il aurait dû utiliser DEPARTMENT_ID à la place 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)

Laquelle de la requête SELECT ci-dessous affichera le salaire maximum et minimum gagné par chaque catégorie d'emploi?

  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. Deux fonctions d'agrégation ne peuvent pas être utilisées ensemble dans l'instruction SELECT.

Answer: B. Plusieurs fonctions de groupe peuvent apparaître dans l'instruction 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)

Examinez l'erreur dans la requête ci-dessous.

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. Il s'exécute avec succès et génère le résultat requis.
  2. Cela produit une erreur car COUNT (*) doit également être spécifié dans la clause SELECT.
  3. Il s'exécute avec succès mais ne produit aucun résultat car COUNT (prod_id) doit être utilisé au lieu de COUNT (*).
  4. Cela produit une erreur car COUNT (*) doit être uniquement dans la clause HAVING et non dans la clause WHERE.

Answer: D. Les fonctions de groupe ne peuvent pas être utilisées dans la clause WHERE. Le peut apparaître dans les clauses SELECT, HAVING et 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)

Prédire le résultat de la requête ci-dessous

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. Il s'exécute avec succès et répertorie le nombre d'employés sous chaque catégorie d'emploi, mais ignore la clause HAVING car «salaire» n'est pas dans la clause GROUP BY.
  2. Il génère une erreur car la clause HAVING n'est pas valide.
  3. Il génère une erreur car "salaire" n'est pas inclus dans la clause GROUP BY.
  4. Il s'exécute avec succès et répertorie le nombre d'employés sous chaque catégorie ayant une somme de salaire supérieure à 5000.

Answer: D. La clause HAVING restreint les résultats du groupe. La fonction COUNT est utilisée pour le comptage tandis que SUM est utilisé pour ajouter les valeurs numériques.

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

  1. Les fonctions de groupe sur les colonnes ignorent les valeurs NULL.
  2. Les fonctions de groupe sur les colonnes renvoyant des dates incluent des valeurs NULL.
  3. Les fonctions de groupe sur les colonnes renvoyant des nombres incluent des valeurs NULL.
  4. Les fonctions de groupe sur les colonnes ne peuvent pas être utilisées avec précision sur les colonnes contenant des valeurs NULL.

Answer: A. À l'exception de la fonction COUNT, toutes les fonctions de groupe ignorent les valeurs NULL.

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

  1. Les sous-requêtes peuvent contenir des clauses GROUP BY et ORDER BY.
  2. Les sous-requêtes ne peuvent pas contenir de clauses GROUP BY et ORDER BY.
  3. Les sous-requêtes peuvent contenir ORDER BY mais pas la clause GROUP BY.
  4. Les sous-requêtes ne peuvent pas contenir ORDER BY mais peuvent avoir une clause GROUP BY.

Answer: A. Comme la requête principale, une sous-requête peut contenir une clause GROUP BY ainsi qu'une clause 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. Il s'exécute avec succès.
  2. Cela donne une erreur car la clause HAVING n'est pas valide.
  3. Cela donne une erreur car l'expression GROUP BY n'est pas valide.
  4. Cela donne une erreur car les fonctions d'agrégation ne peuvent pas être imbriquées dans l'instruction SELECT.

Answer: B. La clause HAVING n'autorise pas l'imbrication de fonctions d'agrégation.

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. Cela donne une erreur car une fonction d'agrégation ne peut pas apparaître juste après la clause SELECT.
  2. Cela donne une erreur car la clause GROUP BY n'est pas valide.
  3. Il s'exécute sans erreur mais ne produit aucune sortie.
  4. Il s'exécute avec succès et donne un salaire moyen dans chaque département.

Answer: D. Les fonctions de groupe peuvent être utilisées dans n'importe quelle séquence (avant ou après le regroupement par colonnes) dans une requête SELECT.

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. Il s'exécute avec succès et affiche «travail» en minuscules.
  2. Il s'exécute avec succès mais affiche "job" dans le cas d'origine.
  3. Cela génère une erreur car les fonctions de ligne unique et d'agrégation ne peuvent pas être utilisées ensemble.
  4. Il génère une erreur car la conversion de cas dans la liste SELECT ne correspond pas à la clause GROUP BY de conversion de cas.

Answer: D. La fonction LOWER, étant une fonction à une seule ligne, doit être spécifiée dans la clause GROUP BY pour baser le regroupement des données 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 première requête opère de l'ensemble des données EMPLOYÉS tandis que la seconde traite les données en groupes de service.

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. Il s'exécute avec succès et affiche le salaire moyen des départements supérieur à 10.
  2. Cela génère une erreur car la colonne non agrégée ne peut pas être utilisée dans la clause HAVING.
  3. Il s'exécute avec succès mais affiche un résultat erroné pour les départements.
  4. Cela génère une erreur car la clause HAVING doit être placée avant la clause GROUP BY.

Answer: A. Les expressions GROUP BY peuvent être utilisées dans la clause HAVING pour filtrer les groupes de l'ensemble de données 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. Cela génère une erreur car plusieurs conditions ne peuvent pas être données dans la clause HAVING.
  2. Il génère une erreur car une colonne non agrégée ne peut pas être utilisée dans la clause HAVING.
  3. Il s'exécute avec succès et affiche le salaire moyen du département supérieur à 10 et supérieur à 2000.
  4. Il s'exécute avec succès mais aucun résultat n'est affiché.

Answer: C. La clause HAVING peut imposer plusieurs conditions jointes à l'aide de l'opérateur AND ou OR pour filtrer les groupes.

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

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

Answer: B, D. La fonction de groupe AVG et SUM ne peut être utilisée qu'avec des données numériques.

51. Which of the following statements are true?

  1. AVG et SUM ne peuvent être utilisés qu'avec des types de données numériques.
  2. STDDEV et VARIANCE ne peuvent être utilisés qu'avec des types de données numériques.
  3. MAX peut être utilisé avec le type de données LONG.
  4. MAX et MIN ne peuvent pas être utilisés avec les types de données LOB ou LONG.

Answer: A, B, D. Les fonctions de groupe AVG, SUM, VARIANCE et STDDEV ne peuvent être utilisées qu'avec des données numériques. Aucune des fonctions de groupe ne peut être utilisée avec le type de données 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)

Identifiez l'erreur dans la requête ci-dessous.

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. Plusieurs fonctions d'agrégation ne peuvent pas être utilisées dans une seule requête SELECT
  2. La clause GROUP BY n'est pas valide
  3. La fonction COUNT ne peut pas être utilisée avec les valeurs DATE
  4. Aucune erreur et il s'exécute avec succès

Answer: D.

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

  1. MAX
  2. MIN
  3. COUNT
  4. Aucun d'eux

Answer: D. Aucune fonction d'agrégation ne peut être utilisée avec les types de données 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)

Prédire la sortie des deux requêtes ci-dessous

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. Les deux requêtes produisent le même résultat
  2. Query - 1 et Query - 2 produisent des résultats différents car Query-1 considère les valeurs NULL de COMM et Query-2 remplace les valeurs NULL de COMM par zéro
  3. Requête - 1 génère une erreur car COMM a des valeurs NULL
  4. La requête - 2 produit une erreur car NVL ne peut pas être imbriquée avec la fonction d'agrégation.

Answer: B. La fonction AVG ignore les valeurs NULL lors du calcul de la moyenne des données numériques. AVG (colonne) calculera la moyenne uniquement pour les valeurs non nulles. Cependant, si NVL est utilisé pour remplacer NULL par un zéro, toutes les valeurs seront prises en compte.

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

  1. L'alias de colonne peut être utilisé dans la clause GROUP BY.
  2. La colonne GROUP BY doit être dans la clause SELECT.
  3. La clause GROUP BY doit apparaître avec la clause HAVING une requête SELECT.
  4. La clause GROUP BY doit apparaître après la clause WHERE dans une requête SELECT.

Answer: D. Selon la séquence de traitement, la clause GROUP BY doit apparaître après la clause WHERE dans une requête 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)

Prédire le résultat de la requête ci-dessous

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. Cela génère une erreur car la liste de colonnes GROUP BY ne correspond pas à la liste de colonnes SELECT.
  2. Il s'exécute avec succès et produit le salaire moyen d'une catégorie d'emploi dans chaque département.
  3. Il s'exécute avec succès et produit un salaire moyen pour un département dans chaque catégorie d'emploi.
  4. Cela génère une erreur car les clauses GROUP BY et ORDER BY ont une liste de colonnes différente.

Answer: B. Bien que la clause GROUP BY trie implicitement les groupes, les clauses GROUP BY et ORDER BY peuvent être utilisées ensemble dans une requête.

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

  1. WHERE
  2. HAVING
  3. PAR GROUPE
  4. COMMANDÉ PAR

Answer: B. La clause HAVING est utilisée pour restreindre les groupes.

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. Il s'exécute avec succès.
  2. Il génère une erreur car la clause HAVING précède la clause GROUP BY.
  3. Cela génère une erreur car la clause HAVING utilise la fonction d'agrégation.
  4. Il s'exécute mais aucun résultat n'est affiché car la clause HAVING précède la clause GROUP BY.

Answer: A. La clause HAVING peut précéder la clause GROUP BY mais elle n'est traitée qu'après le calcul des résultats du groupe.

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. Il renvoie une erreur car l'opérateur BETWEEN ne peut pas être utilisé dans la clause HAVING.
  2. Elle renvoie une erreur car les clauses WHERE et HAVING ne peuvent pas être utilisées dans la même instruction SELECT.
  3. Il renvoie une erreur car les clauses WHERE et HAVING ne peuvent pas être utilisées pour appliquer des conditions sur la même colonne.
  4. Il s'exécute avec succès.

Answer: D. La clause WHERE limite le nombre de lignes participant au traitement de la clause de groupe.

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

  1. La clause HAVING peut être utilisée avec des fonctions de groupe dans les sous-requêtes.
  2. La clause WHERE peut être utilisée pour exclure des lignes après les avoir divisées en groupes.
  3. La clause WHERE peut être utilisée pour exclure des lignes avant de les diviser en groupes.
  4. Les clauses WHERE et HAVING peuvent être utilisées dans la même instruction uniquement si elles sont appliquées à différentes colonnes de la table.

Answer: A, C. Les clauses WHERE et HAVING peuvent être utilisées ensemble dans une requête. WHERE exclut les lignes avant le traitement du groupe tandis que HAVING restreint les groupes.

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. Il renvoie une erreur car les fonctions d'agrégation utilisées dans la clause HAVING doivent être dans la liste SELECT.
  2. Il renvoie une erreur car la clause HAVING apparaît avant la clause GROUP BY.
  3. Il affiche les départements dont le salaire moyen est supérieur au salaire minimum du département.
  4. Il affiche les départements dont le salaire moyen est supérieur au salaire minimum de l'organisation.

Answer: C. Les fonctions de groupe peuvent être utilisées par la clause HAVING pour filtrer les groupes.

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. Il calcule la somme des moyennes de longueur du nom de l'employé dans chaque département.
  2. Il calcule la longueur moyenne du nom de l'employé dans chaque département.
  3. Cela génère une erreur car la fonction à une seule ligne ne peut pas être utilisée avec les fonctions de groupe.
  4. Cela génère une erreur car la colonne de groupe DEPARTMENT_ID n'est pas utilisée dans la liste SELECT.

Answer: A. Les fonctions de groupe peuvent être utilisées avec une seule ligne ou des fonctions générales dans la requête SELECT.

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

  1. 1
  2. 2
  3. 3
  4. Pas de limites

Answer: B. Les fonctions de groupe peuvent être imbriquées au maximum sur 2 niveaux. Cependant, les fonctions à une seule ligne peuvent être imbriquées jusqu'à n'importe quel nombre de niveaux.

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

  1. 1
  2. 2
  3. 3
  4. Sans limites

Answer: D. Il n'y a pas de limite au nombre de groupes et de sous-groupes qui peuvent être formés.

65. Choose the correct statements about the HAVING clause.

  1. La clause HAVING est une clause facultative dans l'instruction SELECT.
  2. La clause HAVING est une clause obligatoire si l'instruction SELECT utilise une clause GROUP BY.
  3. La clause HAVING ne peut apparaître dans une instruction SELECT que si elle utilise une clause GROUP BY.
  4. La clause HAVING est une clause obligatoire si l'instruction SELECT utilise une clause GROUP BY.

Answer: A, C. La clause HAVING ne peut apparaître dans une requête que si la clause GROUP BY est présente, mais vice versa n'est pas vrai.

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. Génère une erreur car les fonctions de groupe ne peuvent pas être appliquées à la table DUAL.

Answer: A. La table DUAL contient une seule colonne DUMMY de type CHAR (1) dont la valeur est «X».

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

Une organisation compte 14 employés qui travaillent avec un salaire fixe de 1 000. L'entreprise recrute 5 nouveaux employés dont le salaire n'est pas encore fixé par le service de la paie. Cependant, lors du traitement de fin de mois, le service de paie RH génère plusieurs rapports pour rapprocher les données financières de l'organisation. Examinez la structure du tableau comme indiqué.

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 fonction SOMME ajoute les salaires des employés.

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 fonction AVG (salaire) calcule la moyenne des salaires et ignore les valeurs NULL. Dans ce cas, AVG (salaire) = (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. L'AVG (NVL (salaire, 0)) donne une valeur alternative aux NULL et leur permet de participer au calcul de la moyenne. Dans ce cas, (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 (salaire) calcule la variance des valeurs de colonne de salaire en ignorant les valeurs 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. La VARIANCE (NL (salaire, 0)) calcule la variance des valeurs de colonne de salaire, y compris les valeurs 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. Le STDDEV (salaire) calcule l'écart type des valeurs de colonne de salaire en ignorant les valeurs 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. Le STDDEV (nvl (salaire, 0)) calcule l'écart type des valeurs de colonne de salaire, y compris les valeurs 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 (*) inclut les valeurs NULL tandis que COUNT (salaire) ignore les valeurs 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)

Laquelle de la requête ci-dessous donnera le service qui compte plus de 5 employés?

  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. Permet d'exécuter plusieurs clauses GROUP BY avec une seule requête.
  2. Effectue des agrégations pour toutes les combinaisons possibles de colonnes incluses.
  3. Effectue des niveaux croissants de sous-totaux cumulés, en fonction de la liste de colonnes fournie.
  4. Aucune de ces réponses

Answer: B. CUBE, ROLLUP sont les extensions GROUP BY utilisées pour le traitement OLAP. CUBE agrège les résultats chaque fois qu'une nouvelle permutation de colonne est formée.

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 clause WHERE est utilisée pour restreindre les lignes avant la formation des groupes.

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 est utilisé pour restreindre les résultats du groupe une fois le traitement du groupe terminé.

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 clause GROUP BY utilise le groupe par colonnes pour regrouper les données de la table.

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

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

Answer: C. Étant donné que la clause SELECT contient la colonne CUSTOMER #, il est obligatoire d'avoir la clause GROUP BY avec la colonne CUSTOMER #.

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

  1. Le nombre d'enregistrements dans les tables spécifiées
  2. Le nombre de commandes passées par chaque client
  3. Le nombre de valeurs NULL dans les tables spécifiées
  4. Le nombre de clients ayant passé une commande

Answer: B. Il compte le nombre de lignes traitées sous un groupe. Dans ce cas, le groupe est formé par le client et COUNT (*) compte les commandes passées par chaque client.

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

  1. Fonction COUNT
  2. Fonction MAX
  3. Fonction MIN
  4. Fonction STDDEV

Answer: C. La fonction MIN est utilisée pour récupérer la moindre valeur de la colonne. Lorsqu'il est utilisé avec des colonnes de date, il récupère la date minimale de la colonne.

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 clause GROUP BY doit spécifier une colonne ou un ensemble de colonnes contenus dans la clause SELECT. Ici, PUBID n'est pas contenu dans la clause SELECT, donc la requête n'est pas valide.

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

  1. La fonction la plus interne est résolue en premier.
  2. Oracle permet l'imbrication de la fonction de groupe jusqu'à 3 niveaux.
  3. Les fonctions à une seule ligne peuvent être imbriquées avec des fonctions de groupe.
  4. Oracle permet l'imbrication de la fonction de groupe jusqu'à 2 niveaux.

Answer: A, C, D. Dans une expression contenant des fonctions imbriquées, la fonction la plus interne est exécutée en premier dont le résultat est introduit dans la fonction suivante se déplaçant vers l'extérieur. Les fonctions à une seule ligne peuvent être bien utilisées avec des fonctions de groupe qui peuvent être imbriquées au maximum jusqu'à 2 niveaux.

85. What are the statistical group functions in Oracle?

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

Answer: B, C. VARIANCE et STATS sont les fonctions de groupe statistique disponibles dans Oracle SQL.

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

  1. COMMANDÉ PAR
  2. HAVING
  3. PAR GROUPE
  4. Aucun d'eux

Answer: C. La clause GROUP BY doit nécessairement contenir la colonne ou l'ensemble de colonnes contenu dans la clause 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)

Quelle est la meilleure explication de la raison pour laquelle cette instruction SQL ne s'exécutera PAS?

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. Les salaires ne peuvent pas être calculés en moyenne car tous les chiffres ne se diviseront pas de manière égale.
  2. Vous ne pouvez pas utiliser d'alias de colonne dans la clause GROUP BY.
  3. La clause GROUP BY doit avoir quelque chose à GROUP.
  4. L'ID de service n'est pas répertorié dans le tableau des départements.

Answer: B. Ni la clause GROUP BY ni la clause HAVING ne fonctionnent avec l'alias de colonne.

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

  1. Seuls les types de données numériques
  2. Entiers uniquement
  3. Tout type de données
  4. Tous sauf numérique

Answer: A. Les fonctions AVG, SUM, VARIANCE et STDDEV fonctionnent obligatoirement avec des données de type numérique uniquement.

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. Utilisez le modificateur DISTINCT pour filtrer les doublons.

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;

Pourquoi cette déclaration provoquera-t-elle une erreur?

  1. La clause HAVING est manquante.
  2. La clause WHERE contient une erreur de syntaxe.
  3. La colonne SALARY n'est PAS incluse dans la clause GROUP BY.
  4. La colonne HIRE_DATE n'est PAS incluse dans la clause GROUP BY.

Answer: D. Toutes les colonnes apparaissant dans la clause SELECT et ORDER BY doivent être incluses dans la clause GROUP BY.

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

  1. Pour exclure des lignes avant de les diviser en groupes à l'aide de la clause GROUP BY, utilisez une clause WHERE.
  2. Vous devez utiliser la clause HAVING avec la clause GROUP BY.
  3. L'alias de colonne peut être utilisé dans une clause GROUP BY.
  4. Par défaut, les lignes ne sont pas triées lorsqu'une clause GROUP BY est utilisée.

Answer: A. À l'aide d'une clause WHERE, vous pouvez exclure des lignes avant de les diviser en groupes.

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)

Interprétez le résultat de la requête ci-dessous.

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. La première date d'embauche dans l'organisation.
  2. La dernière date d'embauche dans l'organisation.
  3. La première date d'embauche dans un département.
  4. La dernière date d'embauche dans un département.

Answer: C. La requête renvoie le premier employé embauché dans chaque service.

93. Which statement about group functions is true?

  1. Fonctions de groupe sauf COUNT (*), ignorent les valeurs nulles.
  2. Une requête qui inclut une fonction de groupe dans la liste SELECT doit inclure une clause GROUP BY.
  3. Les fonctions de groupe peuvent être utilisées dans une clause WHERE.
  4. Les fonctions de groupe ne peuvent être utilisées que dans une liste SELECT.

Answer: A. Toutes les fonctions de groupe sauf COUNT (*), ignorent les valeurs NULL. C'est parce qu'ils traitent les valeurs directement contenues dans une colonne spécifique.

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

  1. GROUP BY MAX (salaire)
  2. COMMANDER PAR AVG (salaire)
  3. HAVING MAX (salaire)> 10000
  4. SELECT AVG (NVL (salaire, 0))

Answer: B, C, D. Les fonctions de groupe peuvent apparaître uniquement dans les clauses SELECT, HAVING et ORDER BY.

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

  1. La dernière colonne répertoriée dans la clause GROUP BY est le regroupement le plus important.
  2. La première colonne répertoriée dans la clause GROUP BY est le regroupement le plus important.
  3. Une clause GROUP BY ne peut pas être utilisée sans une clause ORDER BY.
  4. La clause GROUP BY n'assure pas le tri de la sortie.

Answer: B. Le regroupement des données est basé sur la séquence de colonnes apparaissant dans la clause GROUP BY.

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

  1. La clause WHERE restreint les lignes avant le regroupement tandis que la clause HAVING restreint les groupes.
  2. La clause WHERE ne peut pas contenir de fonction de groupe mais la clause HAVING peut en avoir.
  3. La clause WHERE peut joindre plusieurs conditions à l'aide des opérateurs AND ou OR, mais pas la clause HAVING.
  4. La clause WHERE peut apparaître dans la requête SELECT sans clause GROUP BY, mais la clause HAVING ne le peut pas.

Answer: A, B, D. La clause WHERE restreint les lignes avant le regroupement mais HAVING restreint les groupes.

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)

Prédisez le résultat de la requête ci-dessous.

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. Il s'exécute avec succès.
  2. Il génère une erreur car la clause ORDER BY n'est pas valide.
  3. Cela génère une erreur car la clause GROUP BY n'est pas valide.
  4. Il génère une erreur car les clauses GROUP BY et ORDER BY ne peuvent pas être utilisées ensemble.

Answer: A. La clause ORDER BY peut utiliser les fonctions de groupe pour le tri.