Utilizzo delle funzioni di gruppo Domande

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

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

Answer: C. NVL è una funzione generale utilizzata per fornire un valore alternativo ai valori NULL. Le funzioni MAX, MIN e AVG possono essere utilizzate come funzioni 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. Tutte le funzioni di gruppo elencate possono essere utilizzate in una query a condizione che non siano selezionate altre colonne nella query 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 funzione MAX può essere utilizzata per restituire lo stipendio massimo in un dipartimento in cui ogni gruppo è formato da un dipartimento.

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

  1. La funzione COUNT conta il numero di righe
  2. La funzione COUNT (*) conta il numero di righe con duplicati e valori NULL
  3. La funzione COUNT (DISTINCT) conta il numero di righe distinte
  4. COUNT (*) è equivalente a COUNT (ALL)

Answer: B. COUNT (*) conta il numero di righe inclusi duplicati e NULL. Utilizzare le parole chiave DISTINCT e ALL per limitare i valori duplicati e NULL.

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

  1. Tabelle annidate
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. I tipi di dati per le funzioni con un argomento possono essere CHAR, VARCHAR2, NUMBER o DATE.

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

SELECT COUNT (*) FROM t_count;
  1. 12
  2. 6
  3. 9
  4. Genera un'eccezione perché la funzione COUNT non funziona con i valori NULL

Answer: A. COUNT (*) conta il numero di righe inclusi duplicati e NULL. Utilizzare le parole chiave DISTINCT e ALL per limitare i valori duplicati 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. Genera un'eccezione perché la funzione COUNT non funziona con i valori NULL

Answer: C. COUNT (colonna) ignora i valori NULL ma conta i duplicati.

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. Genera un'eccezione perché la funzione COUNT non funziona con i valori NULL

Answer: C. COUNT (ALL colonna) ignora i valori NULL ma conta i duplicati.

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. Genera un'eccezione perché la funzione COUNT non funziona con i valori NULL

Answer: B. COUNT (colonna DISTINCT) conta i valori distinti non nulli.

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

SELECT COUNT() FROM dual;
  1. Viene eseguito correttamente e non restituisce alcun output
  2. Viene eseguito correttamente e restituisce l'output come "1"
  3. Genera l'eccezione "ORA-00909: numero di argomenti non valido"
  4. Genera l'eccezione "ORA-00904:" COUNT ": identificatore non valido" perché la funzione COUNT non funziona con la tabella DUAL

Answer: C. La funzione COUNT richiede almeno un argomento che può essere la colonna con [ALL | DISTINCT] modificatore o "*".

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

io. La funzione accetta più input numerici e restituisce la varianza di tutti i valori

ii. La funzione accetta una colonna di numeri e restituisce la varianza di tutti i valori di colonna, inclusi i NULL

iii. La funzione accetta una colonna numerica e restituisce la varianza di tutti i valori di colonna esclusi i NULL

Scegli la combinazione corretta dalle opzioni seguenti.

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

Answer: C. La funzione VARIANCE accetta un singolo argomento numerico come nome della colonna e restituisce la varianza di tutti i valori della colonna considerando NULL.

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

  1. RAGGRUPPA PER
  2. SET DI RAGGRUPPAMENTO
  3. CUBE
  4. ROLLUP

Answer: A. Le operazioni GROUPING SETS possono essere utilizzate per eseguire più aggregazioni GROUP BY con una singola query.

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 è un gruppo per funzione perché elabora un gruppo di dipendenti che lavorano in un reparto
  2. SUM è una funzione aggregata perché produce un risultato per gruppo di dati
  3. SOMMA è una funzione a riga singola perché restituisce un valore singolo per un gruppo, ad esempio reparto
  4. SUM è una funzione di raggruppamento per estensione perché utilizza la clausola GROUP BY per raggruppare logicamente i reparti

Answer: A. SUM è una funzione di gruppo che calcola la somma degli stipendi di un gruppo di dipendenti che lavorano in un dipartimento.

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

  1. WHERE
  2. LIMIT
  3. GRUPPO DOVE
  4. HAVING

Answer: D. La clausola HAVING viene utilizzata per limitare i risultati del gruppo. Si utilizza la clausola HAVING per specificare i gruppi che devono essere visualizzati, limitando ulteriormente i gruppi sulla base delle informazioni aggregate. La clausola HAVING può precedere la clausola GROUP BY, ma si consiglia di inserire prima la clausola GROUP BY perché è più logica. I gruppi vengono formati e le funzioni di gruppo vengono calcolate prima che la clausola HAVING venga applicata ai gruppi nell'elenco 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 query restituisce il numero di dipendenti che non hanno commissioni
  2. La query genera un errore perché il segno di uguale non può essere utilizzato durante la ricerca del valore NULL
  3. La query restituisce il numero di dipendenti in un reparto la cui commissione è il valore NULL
  4. La query genera un errore perché la clausola GROUP BY manca nella query

Answer: B. L'esclusione dei NULL utilizzando la condizione WHERE è un modo per indirizzare la query a ignorare i NULL. Ma qui l'uso dell'operatore IS NULL è sbagliato. La condizione dovrebbe essere "WHERE comm IS NULL".

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

  1. La funzione MIN può essere utilizzata solo con dati numerici.
  2. La funzione MAX può essere utilizzata solo con valori di data.
  3. La funzione AVG può essere utilizzata solo con dati numerici.
  4. La funzione SUM non può essere parte di una funzione annidata.

Answer: C. La funzione AVG può essere utilizzata solo con valori numerici. Altre funzioni che hanno tale restrizione sono 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. Gli alias di colonna non possono essere utilizzati nella clausola GROUP BY o HAVING.

18. Which of the following statements is correct?

  1. La clausola WHERE può contenere una funzione di gruppo solo se la funzione non è elencata anche nella clausola SELECT.
  2. Le funzioni di gruppo non possono essere utilizzate nelle clausole SELECT, FROM o WHERE.
  3. La clausola HAVING viene sempre elaborata prima della clausola WHERE.
  4. La clausola GROUP BY viene sempre elaborata prima della clausola HAVING.

Answer: D. Sebbene Oracle non sollevi errori se la clausola HAVING precede la clausola GROUP BY, ma viene elaborata solo dopo che la clausola GROUP BY è stata elaborata e il gruppo è pronto per essere filtrato.

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 funzione COUNT può essere utilizzata per determinare quante righe contengono un valore NULL.
  2. Solo valori distinti sono inclusi nelle funzioni di gruppo, a meno che la parola chiave ALL non sia inclusa nella clausola SELECT.
  3. La clausola WHERE limita le righe da elaborare.
  4. La clausola HAVING determina quali gruppi vengono visualizzati nei risultati della query.

Answer: C, D. La clausola WHERE limita le righe prima che vengano raggruppate ed elaborate mentre la clausola HAVING limita i gruppi.

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 clausola GROUP BY deve contenere tutte le colonne tranne quella utilizzata all'interno della funzione group.

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. Nessuno dei precedenti

Answer: A.

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

1. Una funzione di gruppo può essere annidata all'interno di una funzione di gruppo.

2. Una funzione di gruppo può essere nidificata all'interno di una funzione a riga singola.

3. Una funzione a riga singola può essere nidificata all'interno di una funzione di gruppo.

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

Answer: A, B, C. Le funzioni di gruppo possono essere nidificate solo fino a una profondità di due. Le funzioni di gruppo possono essere nidificate all'interno di funzioni a riga singola (AVG incorporato in una funzione TO_CHAR). Inoltre, le funzioni a riga singola possono essere nidificate all'interno di funzioni di gruppo.

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 funzione SOMMA viene utilizzata per ottenere l'aggiunta di valori numerici.

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. Nessuno dei precedenti

Answer: A. Poiché la categoria FAMILY deve essere limitata prima del raggruppamento, le righe della tabella devono essere filtrate utilizzando la clausola WHERE e non la clausola 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 è una funzione generale per fornire valori alternativi ai valori NULL. Può davvero fare la differenza nei calcoli aritmetici utilizzando le funzioni di gruppo AVG, DEV.STD e VARIANCE.

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

  1. È necessario immettere la parola chiave ALL in una funzione di gruppo per includere tutti i valori duplicati.
  2. La funzione AVG può essere utilizzata per trovare la differenza media calcolata tra due date.
  3. Le funzioni MIN e MAX possono essere utilizzate sulle colonne VARCHAR2.
  4. Tutti i precedenti

Answer: A. La parola chiave ALL conta i duplicati ma ignora i NULL. I duplicati sono inclusi anche con "*" e la specifica del nome della colonna.

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 tutti i clienti come un gruppo, COUNT (indirizzati) conterà solo quelli segnalati da qualcuno. COUNT (riferito) ignorerà i valori NULL della colonna.

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

1.SELEZIONA

2.Da

3.DOVE

4.GRUPPO DI

5. AVERE

6.ORDINE DA

  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'ordine di elaborazione parte dalla clausola FROM per ottenere i nomi delle tabelle, quindi limita le righe utilizzando la clausola WHERE, raggruppandole utilizzando la clausola GROUP BY, limitando i gruppi utilizzando la clausola HAVING. La clausola ORDER BY è l'ultima da elaborare per ordinare il set di dati finale.

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. RAGGRUPPA PER
  4. GROUPING

Answer: C. La clausola GROUP BY forma i gruppi di dati in base all'elenco di colonne specificato.

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. Istruzione SELECT
  2. Dove la clausola
  3. Clausola ORDER BY
  4. Clausola GROUP BY

Answer: A, C, D. Le funzioni di gruppo possono essere visualizzate nelle clausole SELECT, ORDER BY e HAVING. Oracle solleva un'eccezione se le funzioni di gruppo vengono utilizzate nelle clausole WHERE o GROUP BY.

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

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

Answer: B. La funzione MIN restituisce lo stipendio minimo in un gruppo formato dal dipartimento.

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. Genera un errore perché solo una funzione di aggregazione può essere utilizzata in una query.
  2. Genera un errore perché manca la clausola GROUP BY.
  3. Viene eseguito correttamente e restituisce gli stessi valori per entrambi.
  4. Viene eseguito correttamente dove COUNT (*) inclusi NULL e COUNT (tutte le comunicazioni) esclusi NULL.

Answer: D.

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

  1. È possibile utilizzare le funzioni di gruppo in qualsiasi clausola di un'istruzione SELECT.
  2. È possibile utilizzare le funzioni di gruppo solo nell'elenco delle colonne della clausola select e nella clausola WHERE di un'istruzione SELECT.
  3. È possibile combinare colonne a riga singola con funzioni di gruppo nell'elenco di colonne di un'istruzione SELECT raggruppando le colonne a riga singola.
  4. È possibile passare nomi di colonna, espressioni, costanti o funzioni come parametri a una funzione di gruppo.

Answer: C. Le funzioni di gruppo possono essere nidificate solo fino a una profondità di due. Le funzioni di gruppo possono essere nidificate all'interno di funzioni a riga singola (AVG incorporato in una funzione TO_CHAR). Inoltre, le funzioni a riga singola possono essere nidificate all'interno di funzioni di gruppo.

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 ;

Quale affermazione è vera per quanto riguarda l'esecuzione della dichiarazione di cui sopra?

  1. La visualizzazione verrà creata e sarà possibile eseguire operazioni DLM sulla visualizzazione
  2. La vista non verrà creata perché le istruzioni di join non sono consentite per la creazione di una vista
  3. La vista non verrà creata perché la clausola GROUP BY non è consentita per la creazione di una vista
  4. La vista verrà creata ma non saranno consentite operazioni DML sulla vista

Answer: D. Regole per l'esecuzione di operazioni DML su una vista. Non è possibile aggiungere dati tramite una vista se la vista include funzioni di gruppo, una clausola GROUP BY o una parola chiave DISTINCT. La pseudo colonna parola chiave ROWNUM Colonne definite dalle espressioni NOT NULL colonne nelle tabelle di base che non sono selezionate dalla vista.

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

  1. Una sottoquery che definisce una vista non può includere la clausola GROUP BY
  2. Viene creata una vista con la sottoquery con la parola chiave DISTINCT che può essere aggiornata
  3. È possibile eseguire un'operazione DML (Data Manipulation Language) su una vista creata con la sottoquery con tutte le colonne NOT NULL di una tabella
  4. Non è possibile aggiornare una vista creata con la sottoquery con la parola chiave ROWNUM della pseudo colonna

Answer: C, D. Regole per l'esecuzione di operazioni DML su una vista. Non è possibile aggiungere dati tramite una vista se la vista include funzioni di gruppo, una clausola GROUP BY o una parola chiave DISTINCT. La pseudo colonna parola chiave ROWNUM Colonne definite dalle espressioni NOT NULL colonne nelle tabelle di base che non sono selezionate dalla vista.

38. Examine the table structure as given.

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

Quale clausola nella query SQL seguente genera un errore?

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. ORDINATO DA
  4. RAGGRUPPA PER

Answer: D. La clausola GROUP BY deve contenere tutte le colonne che compaiono nell'istruzione SELECT. Genera un errore perché JOB non è una colonna selezionata. Avrebbe dovuto utilizzare DEPARTMENT_ID al posto di 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)

Quale delle seguenti query SELEZIONATE mostrerà lo stipendio massimo e minimo guadagnato da ciascuna categoria di lavoro?

  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. Non è possibile utilizzare due funzioni aggregate insieme nell'istruzione SELECT.

Answer: B. Più di una funzione di gruppo può essere visualizzata nell'istruzione 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)

Esamina l'errore nella query seguente.

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. Viene eseguito correttamente e genera il risultato richiesto.
  2. Produce un errore perché COUNT (*) deve essere specificato anche nella clausola SELECT.
  3. Viene eseguito correttamente ma non produce risultati perché è necessario utilizzare COUNT (prod_id) invece di COUNT (*).
  4. Produce un errore perché COUNT (*) dovrebbe essere solo nella clausola HAVING e non nella clausola WHERE.

Answer: D. Le funzioni di gruppo non possono essere utilizzate nella clausola WHERE. Può apparire nelle clausole 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)

Prevedi il risultato della query seguente

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. Viene eseguito correttamente ed elenca il conteggio dei dipendenti in ciascuna categoria di lavoro ma ignora la clausola HAVING poiché "stipendio" non è nella clausola GROUP BY.
  2. Genera un errore perché la clausola HAVING non è valida.
  3. Genera un errore perché "stipendio" non è incluso nella clausola GROUP BY.
  4. Esegue con successo ed elenca il conteggio dei dipendenti in ciascuna categoria con somma di stipendio superiore a 5000.

Answer: D. La clausola HAVING limita i risultati del gruppo. La funzione COUNT viene utilizzata per il conteggio mentre SUM viene utilizzata per aggiungere i valori numerici.

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

  1. Le funzioni di gruppo sulle colonne ignorano i valori NULL.
  2. Le funzioni di gruppo sulle colonne che restituiscono date includono valori NULL.
  3. Le funzioni di gruppo sulle colonne che restituiscono numeri includono valori NULL.
  4. Le funzioni di gruppo sulle colonne non possono essere utilizzate con precisione su colonne che contengono valori NULL.

Answer: A. Ad eccezione della funzione COUNT, tutte le funzioni di gruppo ignorano i valori NULL.

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

  1. Le sottoquery possono contenere clausole GROUP BY e ORDER BY.
  2. Le sottoquery non possono contenere clausole GROUP BY e ORDER BY.
  3. Le sottoquery possono contenere ORDER BY ma non la clausola GROUP BY.
  4. Le sottoquery non possono contenere ORDER BY ma possono avere la clausola GROUP BY.

Answer: A. Come la query principale, una sottoquery può contenere una clausola GROUP BY e 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. Viene eseguito con successo.
  2. Fornisce un errore perché la clausola HAVING non è valida.
  3. Fornisce un errore perché l'espressione GROUP BY non è valida.
  4. Fornisce un errore perché le funzioni aggregate non possono essere annidate nell'istruzione SELECT.

Answer: B. La clausola HAVING non consente l'annidamento di funzioni aggregate.

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. Fornisce un errore perché una funzione aggregata non può apparire subito dopo la clausola SELECT.
  2. Fornisce un errore perché la clausola GROUP BY non è valida.
  3. Viene eseguito senza errori ma non produce output.
  4. Funziona con successo e fornisce uno stipendio medio in ogni dipartimento.

Answer: D. Le funzioni di gruppo possono essere utilizzate in qualsiasi sequenza (prima o dopo il raggruppamento per colonne) in una query SELECT.

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. Viene eseguito correttamente e visualizza "job" in minuscolo.
  2. Viene eseguito correttamente ma mostra "lavoro" nel caso originale.
  3. Genera un errore perché una singola riga e le funzioni di aggregazione non possono essere utilizzate insieme.
  4. Genera un errore perché la conversione del caso nell'elenco SELECT non corrisponde alla clausola GROUP BY di conversione del caso.

Answer: D. La funzione LOWER, essendo una funzione a riga singola, deve essere specificata nella clausola GROUP BY per basare il raggruppamento dei dati 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 prima query gestisce i dati dell'intero DIPENDENTI mentre la seconda elabora i dati in gruppi di reparto.

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. Viene eseguito con successo e mostra lo stipendio medio dei reparti superiore a 10.
  2. Genera un errore perché la colonna non aggregata non può essere utilizzata nella clausola HAVING.
  3. Viene eseguito correttamente ma mostra risultati errati per i reparti.
  4. Genera un errore perché la clausola HAVING deve essere inserita prima della clausola GROUP BY.

Answer: A. Le espressioni GROUP BY possono essere utilizzate nella clausola HAVING per filtrare i gruppi dall'insieme di dati finale.

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. Genera un errore perché non è possibile fornire più condizioni nella clausola HAVING.
  2. Genera un errore perché una colonna non aggregata non può essere utilizzata nella clausola HAVING.
  3. Esegue con successo e mostra lo stipendio medio del dipartimento superiore a 10 e maggiore di 2000.
  4. Viene eseguito correttamente ma non viene visualizzato alcun risultato.

Answer: C. La clausola HAVING può imporre più condizioni unite utilizzando l'operatore AND o OR per filtrare i gruppi.

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 funzione di gruppo AVG e SUM può essere utilizzata solo con dati numerici.

51. Which of the following statements are true?

  1. AVG e SUM possono essere utilizzati solo con tipi di dati numerici.
  2. STDDEV e VARIANCE possono essere utilizzati solo con tipi di dati numerici.
  3. MAX può essere utilizzato con il tipo di dati LONG.
  4. MAX e MIN non possono essere utilizzati con i tipi di dati LOB o LONG.

Answer: A, B, D. Le funzioni di gruppo AVG, SUM, VARIANCE e STDDEV possono essere utilizzate solo con dati numerici. Nessuna delle funzioni di gruppo può essere utilizzata con il tipo di dati 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)

Identifica l'errore nella query seguente.

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. Non è possibile utilizzare più funzioni di aggregazione in una singola query SELECT
  2. La clausola GROUP BY non è valida
  3. La funzione COUNT non può essere utilizzata con i valori DATE
  4. Nessun errore e viene eseguito con successo

Answer: D.

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

  1. MAX
  2. MIN
  3. COUNT
  4. Nessuno di questi

Answer: D. Nessuna funzione aggregata può essere utilizzata con i tipi di dati 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)

Prevedi l'output delle due query seguenti

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. Entrambe le query producono lo stesso risultato
  2. Query - 1 e Query - 2 producono risultati diversi perché Query-1 considera i valori NULL di COMM e Query-2 sostituisce i valori NULL di COMM con zero
  3. Query - 1 produce un errore perché COMM ha valori NULL
  4. La query - 2 produce un errore perché NVL non può essere annidato con la funzione di aggregazione.

Answer: B. La funzione AVG ignora i valori NULL durante il calcolo della media dei dati numerici. AVG (colonna) calcolerà la media solo per i valori non nulli. Tuttavia, se NVL viene utilizzato per sostituire NULL con uno zero, verranno considerati tutti i valori.

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

  1. L'alias di colonna può essere utilizzato nella clausola GROUP BY.
  2. La colonna GROUP BY deve essere nella clausola SELECT.
  3. La clausola GROUP BY deve apparire insieme alla clausola HAVING una query SELECT.
  4. La clausola GROUP BY deve apparire dopo la clausola WHERE in una query SELECT.

Answer: D. Secondo la sequenza di elaborazione, la clausola GROUP BY deve apparire dopo la clausola WHERE in una query 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)

Prevedi il risultato della query seguente

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. Genera un errore perché l'elenco di colonne GROUP BY non corrisponde con l'elenco di colonne SELECT.
  2. Esegue con successo e produce lo stipendio medio di una categoria di lavoro in ogni dipartimento.
  3. Esegue con successo e produce uno stipendio medio per un dipartimento in ciascuna categoria di lavoro.
  4. Genera un errore perché le clausole GROUP BY e ORDER BY hanno un elenco di colonne diverso.

Answer: B. Anche se la clausola GROUP BY ordina implicitamente i gruppi, le clausole GROUP BY e ORDER BY possono essere utilizzate insieme in una query.

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

  1. WHERE
  2. HAVING
  3. RAGGRUPPA PER
  4. ORDINATO DA

Answer: B. La clausola HAVING viene utilizzata per limitare i gruppi.

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. Viene eseguito con successo.
  2. Genera un errore perché la clausola HAVING precede la clausola GROUP BY.
  3. Genera un errore perché la clausola HAVING utilizza la funzione di aggregazione.
  4. Viene eseguito ma non vengono visualizzati risultati perché la clausola HAVING precede la clausola GROUP BY.

Answer: A. La clausola HAVING può precedere la clausola GROUP BY ma viene elaborata solo dopo il calcolo dei risultati del gruppo.

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. Restituisce un errore perché l'operatore BETWEEN non può essere utilizzato nella clausola HAVING.
  2. Restituisce un errore perché le clausole WHERE e HAVING non possono essere utilizzate nella stessa istruzione SELECT.
  3. Restituisce un errore perché le clausole WHERE e HAVING non possono essere utilizzate per applicare condizioni sulla stessa colonna.
  4. Viene eseguito con successo.

Answer: D. La clausola WHERE limita il numero di righe che partecipano all'elaborazione della clausola group.

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

  1. La clausola HAVING può essere utilizzata con le funzioni di gruppo nelle sottoquery.
  2. La clausola WHERE può essere utilizzata per escludere righe dopo averle divise in gruppi.
  3. La clausola WHERE può essere utilizzata per escludere righe prima di dividerle in gruppi.
  4. Le clausole WHERE e HAVING possono essere utilizzate nella stessa istruzione solo se applicate a colonne diverse nella tabella.

Answer: A, C. WHERE e le clausole HAVING possono essere utilizzate insieme in una query. WHERE esclude le righe prima dell'elaborazione del gruppo mentre HAVING limita i gruppi.

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. Viene generato un errore perché le funzioni aggregate utilizzate nella clausola HAVING devono essere nell'elenco SELECT.
  2. Genera un errore perché la clausola HAVING appare prima della clausola GROUP BY.
  3. Visualizza i reparti il ​​cui stipendio medio è maggiore dello stipendio minimo del reparto.
  4. Visualizza i reparti il ​​cui stipendio medio è maggiore dello stipendio minimo dell'organizzazione.

Answer: C. Le funzioni di gruppo possono essere utilizzate dalla clausola HAVING per filtrare i gruppi.

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. Calcola la somma delle medie della lunghezza del nome del dipendente in ogni reparto.
  2. Calcola la lunghezza media del nome del dipendente in ogni reparto.
  3. Genera un errore perché la funzione di riga singola non può essere utilizzata con le funzioni di gruppo.
  4. Genera un errore perché la colonna del gruppo DEPARTMENT_ID non è utilizzata nell'elenco SELECT.

Answer: A. Le funzioni di gruppo possono essere utilizzate con una singola riga o funzioni generali nella query SELECT.

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

  1. 1
  2. 2
  3. 3
  4. Senza limiti

Answer: B. Le funzioni di gruppo possono essere annidate fino a un massimo di 2 livelli. Tuttavia, le funzioni a riga singola possono essere annidate fino a un numero qualsiasi di livelli.

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

  1. 1
  2. 2
  3. 3
  4. Senza limiti

Answer: D. Non c'è limite al numero di gruppi e sottogruppi che possono essere formati.

65. Choose the correct statements about the HAVING clause.

  1. La clausola HAVING è una clausola facoltativa nell'istruzione SELECT.
  2. La clausola HAVING è una clausola obbligatoria se l'istruzione SELECT utilizza una clausola GROUP BY.
  3. La clausola HAVING può essere visualizzata in un'istruzione SELECT solo se utilizza una clausola GROUP BY.
  4. La clausola HAVING è una clausola obbligatoria se l'istruzione SELECT utilizza una clausola GROUP BY.

Answer: A, C. La clausola HAVING può apparire in una query solo se è presente la clausola GROUP BY, ma viceversa non è vera.

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. Genera un errore perché le funzioni di gruppo non possono essere applicate alla tabella DUAL.

Answer: A. La tabella DUAL contiene una singola colonna DUMMY di tipo CHAR (1) il cui valore è "X".

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

Un'organizzazione ha 14 dipendenti che lavorano con uno stipendio fisso di 1000. L'azienda assume 5 nuovi dipendenti il ​​cui stipendio non è ancora fissato dall'ufficio paghe. Tuttavia, durante l'elaborazione di fine mese, il reparto gestione stipendi delle risorse umane genera diversi report per riconciliare i dati finanziari dell'organizzazione. Esaminare la struttura del tavolo come data.

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 funzione SOMMA aggiunge gli stipendi dei dipendenti.

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 funzione AVG (stipendio) calcola la media degli stipendi e ignora i valori NULL. In questo caso, AVG (stipendio) = (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 (stipendio, 0)) fornisce un valore alternativo ai NULL e consente loro di partecipare al calcolo della media. In questo caso, (14 * 1000) / 19 = 736,84.

70. What is the output of the below query?

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

Answer: B. VARIANCE (salary) calcola la varianza dei valori della colonna salary ignorando i 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 VARIANZA (NL (stipendio, 0)) calcola la varianza dei valori della colonna dello stipendio inclusi i 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. STDDEV (salary) calcola la deviazione standard dei valori della colonna salary ignorando i 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. DEV.STD (nvl (salary, 0)) calcola la deviazione standard dei valori della colonna salario inclusi i 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 (*) include NULL mentre COUNT (stipendio) ignora i valori 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)

Quale delle seguenti query fornirà al dipartimento che ha più di 5 dipendenti che lavorano in esso?

  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. Consente di eseguire più clausole GROUP BY con una singola query.
  2. Esegue aggregazioni per tutte le possibili combinazioni di colonne incluse.
  3. Esegue livelli crescenti di totali parziali cumulativi, in base all'elenco di colonne fornito.
  4. Nessuno dei precedenti

Answer: B. CUBE, ROLLUP sono le estensioni GROUP BY utilizzate per l'elaborazione OLAP. CUBE aggrega i risultati ogni volta che si forma una nuova permutazione di colonna.

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 clausola WHERE viene utilizzata per limitare le righe prima che i gruppi vengano formati.

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 viene utilizzato per limitare i risultati del gruppo al termine dell'elaborazione del gruppo.

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 clausola GROUP BY utilizza le colonne group by per raggruppare i dati nella tabella.

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

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

Answer: C. Poiché la clausola SELECT contiene la colonna CUSTOMER #, è obbligatorio avere la clausola GROUP BY con la colonna CUSTOMER #.

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

  1. Il numero di record nelle tabelle specificate
  2. Il numero di ordini effettuati da ciascun cliente
  3. Il numero di valori NULL nelle tabelle specificate
  4. Il numero di clienti che hanno effettuato un ordine

Answer: B. Conta il numero di righe elaborate in un gruppo. In questo caso, il gruppo è formato dal cliente e COUNT (*) conta gli ordini effettuati da ogni 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. Funzione COUNT
  2. Funzione MAX
  3. Funzione MIN
  4. Funzione DEV.STD

Answer: C. La funzione MIN viene utilizzata per recuperare il valore minimo della colonna. Quando viene utilizzato con le colonne della data, recupera la data minima dalla colonna.

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 clausola GROUP BY deve specificare una colonna o un insieme di colonne contenute nella clausola SELECT. Qui PUBID non è contenuto nella clausola SELECT, quindi la query non è valida.

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

  1. La funzione più interna viene risolta per prima.
  2. Oracle consente l'annidamento di funzioni di gruppo fino a 3 livelli.
  3. Le funzioni di riga singola possono essere nidificate con le funzioni di gruppo.
  4. Oracle consente l'annidamento di funzioni di gruppo fino a 2 livelli.

Answer: A, C, D. In un'espressione contenente funzioni annidate, viene eseguita per prima la funzione più interna il cui risultato viene immesso nella funzione successiva spostandosi verso l'esterno. Le funzioni a riga singola possono essere ben utilizzate con le funzioni di gruppo che possono essere annidate al massimo fino a 2 livelli.

85. What are the statistical group functions in Oracle?

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

Answer: B, C. VARIANCE e STATS sono le funzioni dei gruppi statistici disponibili in Oracle SQL.

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

  1. ORDINATO DA
  2. HAVING
  3. RAGGRUPPA PER
  4. Nessuno di questi

Answer: C. La clausola GROUP BY deve necessariamente contenere la colonna o il set di colonne contenuto nella clausola 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 è la migliore spiegazione del motivo per cui questa istruzione SQL NON verrà eseguita?

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. Non è possibile calcolare la media degli stipendi poiché non tutti i numeri verranno divisi equamente.
  2. Non è possibile utilizzare un alias di colonna nella clausola GROUP BY.
  3. La clausola GROUP BY deve avere qualcosa su GROUP.
  4. L'ID reparto non è elencato nella tabella dei reparti.

Answer: B. Né la clausola GROUP BY né la clausola HAVING funzionano con l'alias di colonna.

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

  1. Solo tipi di dati numerici
  2. Solo numeri interi
  3. Qualsiasi tipo di dati
  4. Tutti tranne numerico

Answer: A. Le funzioni AVG, SUM, VARIANCE e STDDEV funzionano obbligatoriamente solo con il tipo di dati numerico.

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. Usa il modificatore DISTINCT per filtrare i duplicati.

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;

Perché questa dichiarazione causerà un errore?

  1. Manca la clausola HAVING.
  2. La clausola WHERE contiene un errore di sintassi.
  3. La colonna SALARIO NON è inclusa nella clausola GROUP BY.
  4. La colonna HIRE_DATE NON è inclusa nella clausola GROUP BY.

Answer: D. Tutte le colonne che compaiono nelle clausole SELECT e ORDER BY devono essere incluse nella clausola GROUP BY.

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

  1. Per escludere le righe prima di dividerle in gruppi utilizzando la clausola GROUP BY, utilizzare la clausola WHERE.
  2. È necessario utilizzare la clausola HAVING con la clausola GROUP BY.
  3. L'alias di colonna può essere utilizzato in una clausola GROUP BY.
  4. Per impostazione predefinita, le righe non vengono ordinate quando viene utilizzata una clausola GROUP BY.

Answer: A. Utilizzando una clausola WHERE, puoi escludere righe prima di dividerle in gruppi.

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)

Interpreta il risultato della query seguente.

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. La prima data di assunzione nell'organizzazione.
  2. L'ultima data di assunzione nell'organizzazione.
  3. La prima data di assunzione in un dipartimento.
  4. L'ultima data di assunzione in un reparto.

Answer: C. La query restituisce il primo dipendente assunto in ogni reparto.

93. Which statement about group functions is true?

  1. Le funzioni di gruppo eccetto COUNT (*), ignorano i valori nulli.
  2. Una query che include una funzione di gruppo nell'elenco SELECT deve includere una clausola GROUP BY.
  3. Le funzioni di gruppo possono essere utilizzate in una clausola WHERE.
  4. Le funzioni di gruppo possono essere utilizzate solo in un elenco SELEZIONA.

Answer: A. Tutte le funzioni del gruppo tranne COUNT (*) ignorano i valori NULL. È perché elaborano i valori contenuti direttamente in una colonna specifica.

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

  1. GROUP BY MAX (stipendio)
  2. ORDINA PER AVG (stipendio)
  3. AVERE MAX (stipendio)> 10000
  4. SELEZIONA AVG (NVL (stipendio, 0))

Answer: B, C, D. Le funzioni di gruppo possono essere visualizzate solo nelle clausole SELECT, HAVING e ORDER BY.

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

  1. L'ultima colonna elencata nella clausola GROUP BY è il raggruppamento più importante.
  2. La prima colonna elencata nella clausola GROUP BY è il raggruppamento più importante.
  3. Una clausola GROUP BY non può essere utilizzata senza una clausola ORDER BY.
  4. La clausola GROUP BY non garantisce l'ordinamento dell'output.

Answer: B. Il raggruppamento dei dati si basa sulla sequenza di colonne che appaiono nella clausola GROUP BY.

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

  1. La clausola WHERE limita le righe prima del raggruppamento mentre la clausola HAVING limita i gruppi.
  2. La clausola WHERE non può contenere una funzione di gruppo ma la clausola HAVING può averla.
  3. La clausola WHERE può unire più condizioni utilizzando gli operatori AND o OR ma la clausola HAVING non può.
  4. La clausola WHERE può apparire nella query SELECT senza la clausola GROUP BY ma la clausola HAVING no.

Answer: A, B, D. La clausola WHERE limita le righe prima del raggruppamento, ma HAVING limita i gruppi.

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)

Prevedi il risultato della query seguente.

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. Viene eseguito con successo.
  2. Genera un errore perché la clausola ORDER BY non è valida.
  3. Genera un errore perché la clausola GROUP BY non è valida.
  4. Genera un errore perché le clausole GROUP BY e ORDER BY non possono essere utilizzate insieme.

Answer: A. La clausola ORDER BY può utilizzare le funzioni di gruppo per l'ordinamento.