Sử dụng các câu hỏi về chức năng nhóm

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

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

Answer: C. NVL là một hàm chung được sử dụng để cung cấp giá trị thay thế cho các giá trị NULL. Các hàm MAX, MIN và AVG có thể được sử dụng như các hàm 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. Tất cả các hàm nhóm được liệt kê có thể được sử dụng trong một truy vấn miễn là không có cột nào khác được chọn trong truy vấn CHỌN.

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. Hàm MAX có thể được sử dụng để trả về mức lương tối đa trong một bộ phận mà mỗi nhóm được thành lập bởi một bộ phận.

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

  1. Hàm COUNT đếm số hàng
  2. Hàm COUNT (*) đếm số hàng có giá trị trùng lặp và NULL
  3. Hàm COUNT (DISTINCT) đếm số hàng riêng biệt
  4. COUNT (*) tương đương với COUNT (TẤT CẢ)

Answer: B. COUNT (*) đếm số lượng hàng bao gồm các bản sao và NULL. Sử dụng từ khóa DISTINCT và ALL để hạn chế các giá trị trùng lặp và NULL.

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

  1. Bảng lồng nhau
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. Các kiểu dữ liệu cho các hàm có đối số có thể là CHAR, VARCHAR2, NUMBER hoặc 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. Ném ngoại lệ vì hàm COUNT không hoạt động với giá trị NULL

Answer: A. COUNT (*) đếm số lượng hàng bao gồm các bản sao và NULL. Sử dụng từ khóa DISTINCT và ALL để hạn chế các giá trị trùng lặp và 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. Ném ngoại lệ vì hàm COUNT không hoạt động với giá trị NULL

Answer: C. COUNT (cột) bỏ qua các giá trị NULL nhưng đếm các giá trị trùng lặp.

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. Ném ngoại lệ vì hàm COUNT không hoạt động với giá trị NULL

Answer: C. COUNT (cột TẤT CẢ) bỏ qua các giá trị NULL nhưng đếm các giá trị trùng lặp.

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. Ném ngoại lệ vì hàm COUNT không hoạt động với giá trị NULL

Answer: B. COUNT (cột DISTINCT) đếm các giá trị khác biệt không rỗng.

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

SELECT COUNT() FROM dual;
  1. Thực thi thành công và không trả về đầu ra
  2. Thực thi thành công và trả về kết quả đầu ra là '1'
  3. Ném ngoại lệ "ORA-00909: số đối số không hợp lệ"
  4. Ném ngoại lệ "ORA-00904:" COUNT ": mã định danh không hợp lệ" vì hàm COUNT không hoạt động với bảng DUAL

Answer: C. Hàm COUNT yêu cầu tối thiểu một đối số có thể là cột có [ALL | DISTINCT] sửa đổi hoặc '*'.

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

Tôi. Hàm chấp nhận nhiều đầu vào số và trả về phương sai của tất cả các giá trị

ii. Hàm chấp nhận một cột số và trả về phương sai của tất cả các giá trị cột bao gồm cả NULL

iii. Hàm chấp nhận một cột số và trả về phương sai của tất cả các giá trị cột không bao gồm NULL

Chọn kết hợp chính xác từ các tùy chọn bên dưới.

  1. tôi và iii
  2. tôi và tôi
  3. ii
  4. iii

Answer: C. Hàm VARIANCE chấp nhận đối số số đơn làm tên cột và trả về phương sai của tất cả các giá trị cột xem xét NULL.

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

  1. NHÓM THEO
  2. BỘ NHÓM
  3. CUBE
  4. ROLLUP

Answer: A. Các phép toán GROUPING SETS có thể được sử dụng để thực hiện nhiều tập hợp GROUP BY với một truy vấn duy nhất.

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 là một nhóm theo chức năng vì nó xử lý nhóm nhân viên làm việc trong một bộ phận
  2. SUM là một hàm tổng hợp vì nó tạo ra một kết quả cho mỗi nhóm dữ liệu
  3. SUM là một hàm hàng đơn vì nó trả về giá trị đơn lẻ cho một nhóm tức là bộ phận
  4. SUM là một nhóm theo hàm mở rộng vì nó sử dụng mệnh đề GROUP BY để nhóm các phòng ban một cách hợp lý

Answer: A. SUM là một hàm nhóm tính tổng tiền lương của một nhóm nhân viên làm việc trong một bộ phận.

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

  1. WHERE
  2. LIMIT
  3. NHÓM Ở ĐÂU
  4. HAVING

Answer: D. Mệnh đề HAVING được sử dụng để hạn chế kết quả nhóm. Bạn sử dụng mệnh đề HAVING để chỉ định các nhóm sẽ được hiển thị, do đó hạn chế thêm các nhóm trên cơ sở thông tin tổng hợp. Mệnh đề HAVING có thể đứng trước mệnh đề GROUP BY, nhưng bạn nên đặt mệnh đề GROUP BY trước vì nó hợp lý hơn. Các nhóm được hình thành và các chức năng của nhóm được tính toán trước khi mệnh đề HAVING được áp dụng cho các nhóm trong danh sách CHỌN.

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. Truy vấn trả về số lượng nhân viên không có hoa hồng
  2. Truy vấn ném ra lỗi vì không thể sử dụng dấu bằng khi tìm kiếm giá trị NULL
  3. Truy vấn trả về số lượng nhân viên trong một bộ phận có giá trị hoa hồng là NULL
  4. Truy vấn ném ra lỗi vì thiếu mệnh đề GROUP BY trong truy vấn

Answer: B. Loại trừ NULL bằng cách sử dụng điều kiện WHERE là một cách để hướng truy vấn bỏ qua NULL. Nhưng ở đây, việc sử dụng toán tử IS NULL là sai. Điều kiện phải là 'WHERE comm IS NULL'.

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

  1. Hàm MIN chỉ có thể được sử dụng với dữ liệu số.
  2. Hàm MAX chỉ có thể được sử dụng với các giá trị ngày tháng.
  3. Chức năng AVG chỉ có thể được sử dụng với dữ liệu số.
  4. Hàm SUM không thể là một phần của hàm lồng nhau.

Answer: C. Hàm AVG chỉ có thể được sử dụng với các giá trị số. Các chức năng khác có hạn chế như vậy là SUM, STDDEV và 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. Không thể sử dụng bí danh cột trong mệnh đề GROUP BY hoặc HAVING.

18. Which of the following statements is correct?

  1. Mệnh đề WHERE chỉ có thể chứa một hàm nhóm nếu hàm không được liệt kê trong mệnh đề SELECT.
  2. Các hàm nhóm không thể được sử dụng trong các mệnh đề SELECT, FROM hoặc WHERE.
  3. Mệnh đề HAVING luôn được xử lý trước mệnh đề WHERE.
  4. Mệnh đề GROUP BY luôn được xử lý trước mệnh đề HAVING.

Answer: D. Mặc dù Oracle không đưa ra lỗi nếu mệnh đề HAVING đứng trước mệnh đề GROUP BY nhưng nó chỉ được xử lý sau khi mệnh đề GROUP BY được xử lý và nhóm đã sẵn sàng được lọc.

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. Hàm COUNT có thể được sử dụng để xác định có bao nhiêu hàng chứa giá trị NULL.
  2. Chỉ các giá trị riêng biệt mới được đưa vào các hàm nhóm, trừ khi từ khóa ALL được đưa vào mệnh đề SELECT.
  3. Mệnh đề WHERE hạn chế các hàng được xử lý.
  4. Mệnh đề HAVING xác định nhóm nào được hiển thị trong kết quả truy vấn.

Answer: C, D. Mệnh đề WHERE hạn chế các hàng trước khi chúng được nhóm và xử lý trong khi mệnh đề HAVING hạn chế các nhóm.

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. Mệnh đề GROUP BY phải chứa tất cả các cột ngoại trừ cột được sử dụng bên trong hàm nhóm.

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. Không có cái nào ở trên

Answer: A.

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

1. Một hàm nhóm có thể được lồng vào bên trong một hàm nhóm.

2. Một hàm nhóm có thể được lồng vào bên trong một hàm một hàng.

3. Một hàm một hàng có thể được lồng vào bên trong một hàm nhóm.

  1. 1
  2. 2
  3. 3
  4. 1 và 3

Answer: A, B, C. Các hàm nhóm chỉ có thể được lồng vào nhau với độ sâu là hai. Các hàm nhóm có thể được lồng vào bên trong các hàm một hàng (AVG được nhúng trong hàm TO_CHAR). Ngoài ra, các hàm một hàng có thể được lồng vào bên trong các hàm nhóm.

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. Hàm SUM được sử dụng để cộng các giá trị số.

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. Không có cái nào ở trên

Answer: A. Vì danh mục FAMILY phải bị hạn chế trước khi nhóm, các hàng trong bảng phải được lọc bằng mệnh đề WHERE chứ không phải mệnh đề 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 là một chức năng chung để cung cấp các giá trị thay thế cho các giá trị NULL. Nó thực sự có thể tạo ra sự khác biệt trong tính toán số học bằng cách sử dụng các hàm nhóm AVG, STDDEV và VARIANCE.

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

  1. Bạn phải nhập từ khóa TẤT CẢ trong một hàm nhóm để bao gồm tất cả các giá trị trùng lặp.
  2. Hàm AVG có thể được sử dụng để tìm sự khác biệt được tính toán trung bình giữa hai ngày.
  3. Các hàm MIN và MAX có thể được sử dụng trên các cột VARCHAR2.
  4. Tất cả những điều trên

Answer: A. Từ khóa ALL đếm các từ khóa trùng lặp nhưng bỏ qua NULL. Các bản sao cũng được bao gồm với đặc điểm kỹ thuật tên cột và '*'.

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. Coi tất cả khách hàng là một nhóm, COUNT (được giới thiệu) sẽ chỉ tính những người được ai đó giới thiệu. COUNT (được giới thiệu) sẽ bỏ qua các giá trị NULL của cột.

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

1.SELECT

2.FROM

3. Ở ĐÂU

4.GROUP BỞI

5. CÓ

6. BIÊN SOẠN BỞI

  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. Thứ tự xử lý bắt đầu từ mệnh đề FROM để lấy tên bảng, sau đó hạn chế các hàng bằng mệnh đề WHERE, nhóm chúng bằng mệnh đề GROUP BY, hạn chế nhóm bằng mệnh đề HAVING. Mệnh đề ORDER BY là mệnh đề cuối cùng được xử lý để sắp xếp tập dữ liệu cuối cùng.

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. NHÓM THEO
  4. GROUPING

Answer: C. Mệnh đề GROUP BY tạo thành các nhóm dữ liệu dựa trên danh sách cột được chỉ định.

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. Câu lệnh SELECT
  2. Mệnh đề WHERE
  3. Mệnh đề ORDER BY
  4. Mệnh đề GROUP BY

Answer: A, C, D. Các hàm nhóm có thể xuất hiện trong mệnh đề SELECT, ORDER BY và HAVING. Oracle đưa ra ngoại lệ nếu các hàm nhóm được sử dụng trong mệnh đề WHERE hoặc 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. Hàm MIN trả về mức lương tối thiểu trong một nhóm do bộ phận tạo thành.

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. Nó gây ra lỗi vì chỉ có thể sử dụng một hàm tổng hợp trong một truy vấn.
  2. Nó phát ra lỗi vì thiếu mệnh đề GROUP BY.
  3. Nó thực thi thành công và trả về các giá trị giống nhau cho cả hai.
  4. Nó thực thi thành công trong đó COUNT (*) bao gồm NULL và COUNT (tất cả dấu phẩy) không bao gồm NULL.

Answer: D.

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

  1. Bạn có thể sử dụng các hàm nhóm trong bất kỳ mệnh đề nào của câu lệnh SELECT.
  2. Bạn chỉ có thể sử dụng các hàm nhóm trong danh sách cột của mệnh đề select và trong mệnh đề WHERE của câu lệnh SELECT.
  3. Bạn có thể trộn các cột hàng đơn với các hàm nhóm trong danh sách cột của câu lệnh SELECT bằng cách nhóm trên các cột hàng đơn.
  4. Bạn có thể chuyển tên cột, biểu thức, hằng số hoặc hàm dưới dạng tham số cho một hàm nhóm.

Answer: C. Các hàm nhóm chỉ có thể được lồng vào nhau với độ sâu là hai. Các hàm nhóm có thể được lồng vào bên trong các hàm một hàng (AVG được nhúng trong hàm TO_CHAR). Ngoài ra, các hàm một hàng có thể được lồng vào bên trong các hàm nhóm.

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 ;

Câu lệnh nào là đúng khi thực hiện câu lệnh trên?

  1. Chế độ xem sẽ được tạo và bạn có thể thực hiện các thao tác DLM trên chế độ xem
  2. Chế độ xem sẽ không được tạo vì các câu lệnh kết hợp không được phép tạo chế độ xem
  3. Chế độ xem sẽ không được tạo vì mệnh đề GROUP BY không được phép tạo chế độ xem
  4. Chế độ xem sẽ được tạo nhưng không có hoạt động DML nào được phép trên chế độ xem

Answer: D. Quy tắc thực hiện các thao tác DML trên một dạng xem. Bạn không thể thêm dữ liệu thông qua một dạng xem nếu dạng xem bao gồm các hàm nhóm hoặc mệnh đề GROUP BY hoặc từ khóa DISTINCT. Từ khóa ROWNUM cột giả Các cột được xác định bởi biểu thức KHÔNG ĐẦY ĐỦ các cột trong bảng cơ sở không được chọn bởi dạng xem.

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

  1. Truy vấn phụ xác định chế độ xem không được bao gồm mệnh đề GROUP BY
  2. Chế độ xem được tạo bằng truy vấn phụ có từ khóa DISTINCT có thể được cập nhật
  3. Có thể thực hiện thao tác Ngôn ngữ thao tác dữ liệu (DML) trên dạng xem được tạo bằng truy vấn phụ có tất cả các cột KHÔNG ĐẦY ĐỦ của bảng
  4. Chế độ xem được tạo bằng truy vấn phụ có từ khóa ROWNUM cột giả không thể được cập nhật

Answer: C, D. Quy tắc thực hiện các thao tác DML trên một dạng xem. Bạn không thể thêm dữ liệu thông qua một dạng xem nếu dạng xem bao gồm các hàm nhóm hoặc mệnh đề GROUP BY hoặc từ khóa DISTINCT. Từ khóa ROWNUM cột giả Các cột được xác định bởi biểu thức KHÔNG ĐẦY ĐỦ các cột trong bảng cơ sở không được chọn bởi dạng xem.

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)

Mệnh đề nào trong câu truy vấn SQL dưới đây tạo ra lỗi?

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. ĐẶT BỞI
  4. NHÓM THEO

Answer: D. Mệnh đề GROUP BY phải chứa tất cả các cột xuất hiện trong câu lệnh SELECT. Nó gây ra lỗi vì JOB không phải là một cột được chọn. Nó nên sử dụng DEPARTMENT_ID thay thế cho 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)

Truy vấn SELECT nào dưới đây sẽ hiển thị mức lương tối đa và tối thiểu kiếm được theo từng loại công việc?

  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. Hai hàm tổng hợp không thể được sử dụng cùng nhau trong câu lệnh SELECT.

Answer: B. Có thể xuất hiện nhiều hơn một hàm nhóm trong câu lệnh 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)

Kiểm tra lỗi trong truy vấn dưới đây.

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. Nó thực thi thành công và tạo ra kết quả cần thiết.
  2. Nó tạo ra một lỗi vì COUNT (*) cũng nên được chỉ định trong mệnh đề SELECT.
  3. Nó thực thi thành công nhưng không tạo ra kết quả vì COUNT (prod_id) nên được sử dụng thay vì COUNT (*).
  4. Nó tạo ra lỗi vì COUNT (*) chỉ nên nằm trong mệnh đề HAVING chứ không phải trong mệnh đề WHERE.

Answer: D. Không thể sử dụng các hàm nhóm trong mệnh đề WHERE. Có thể xuất hiện trong mệnh đề SELECT, HAVING và 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)

Dự đoán kết quả của truy vấn dưới đây

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. Nó thực hiện thành công và liệt kê số lượng nhân viên theo từng loại công việc nhưng bỏ qua mệnh đề HAVING vì "tiền lương" không nằm trong mệnh đề GROUP BY.
  2. Nó ném ra lỗi vì mệnh đề HAVING không hợp lệ.
  3. Nó ném ra lỗi vì "tiền lương" không được bao gồm trong mệnh đề GROUP BY.
  4. Nó thực hiện thành công và liệt kê số lượng nhân viên theo từng loại có tổng tiền lương lớn hơn 5000.

Answer: D. Mệnh đề HAVING hạn chế kết quả nhóm. Hàm COUNT được sử dụng để đếm trong khi hàm SUM được sử dụng để thêm các giá trị số.

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

  1. Nhóm hàm trên cột bỏ qua giá trị NULL.
  2. Nhóm hàm trên các cột trả về ngày tháng bao gồm giá trị NULL.
  3. Nhóm hàm trên các cột trả về số bao gồm các giá trị NULL.
  4. Các hàm nhóm trên cột không thể được sử dụng chính xác trên các cột có chứa giá trị NULL.

Answer: A. Ngoại trừ hàm COUNT, tất cả các hàm nhóm đều bỏ qua giá trị NULL.

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

  1. Truy vấn con có thể chứa các mệnh đề GROUP BY và ORDER BY.
  2. Truy vấn con không được chứa mệnh đề GROUP BY và ORDER BY.
  3. Truy vấn con có thể chứa ORDER BY nhưng không chứa mệnh đề GROUP BY.
  4. Truy vấn con không được chứa ORDER BY nhưng có thể có mệnh đề GROUP BY.

Answer: A. Giống như truy vấn chính, truy vấn con có thể chứa mệnh đề GROUP BY cũng như 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. Nó thực thi thành công.
  2. Nó báo lỗi vì mệnh đề HAVING không hợp lệ.
  3. Nó báo lỗi vì biểu thức GROUP BY không hợp lệ.
  4. Nó báo lỗi vì không thể lồng các hàm tổng hợp trong câu lệnh SELECT.

Answer: B. Mệnh đề HAVING không cho phép lồng các hàm tổng hợp.

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. Nó đưa ra lỗi vì một hàm tổng hợp không thể xuất hiện ngay sau mệnh đề SELECT.
  2. Nó báo lỗi vì mệnh đề GROUP BY không hợp lệ.
  3. Nó thực thi mà không có lỗi nhưng không tạo ra đầu ra.
  4. Nó thực hiện thành công và đưa ra mức lương trung bình trong từng bộ phận.

Answer: D. Các hàm nhóm có thể được sử dụng theo bất kỳ trình tự nào (trước hoặc sau nhóm theo cột) trong truy vấn SELECT.

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. Nó thực thi thành công và hiển thị "job" bằng chữ thường.
  2. Nó thực thi thành công nhưng hiển thị "công việc" trong trường hợp ban đầu.
  3. Nó gây ra lỗi vì không thể sử dụng các hàm đơn hàng và hàm tổng hợp cùng nhau.
  4. Nó gây ra lỗi vì chuyển đổi trường hợp trong danh sách CHỌN không khớp với mệnh đề GROUP BY chuyển đổi trường hợp.

Answer: D. Hàm LOWER, là một hàm hàng đơn phải được chỉ định trong mệnh đề GROUP BY để làm cơ sở phân nhóm dữ liệu NHÂN VIÊN.

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. Truy vấn đầu tiên xử lý toàn bộ dữ liệu NHÂN VIÊN trong khi truy vấn thứ hai xử lý dữ liệu theo nhóm bộ phận.

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. Nó thực hiện thành công và hiển thị mức lương trung bình của các phòng ban cao hơn 10.
  2. Nó ném ra lỗi vì cột không tổng hợp không thể được sử dụng trong mệnh đề HAVING.
  3. Nó thực hiện thành công nhưng hiển thị sai kết quả cho các phòng ban.
  4. Nó ném ra lỗi vì mệnh đề HAVING phải được đặt trước mệnh đề GROUP BY.

Answer: A. Biểu thức GROUP BY có thể được sử dụng trong mệnh đề HAVING để lọc ra các nhóm từ tập dữ liệu cuối cùng.

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. Nó ném ra lỗi vì không thể đưa ra nhiều điều kiện trong mệnh đề HAVING.
  2. Nó ném ra lỗi vì không thể sử dụng cột không tổng hợp trong mệnh đề HAVING.
  3. Nó thực hiện thành công và hiển thị mức lương trung bình của bộ phận cao hơn 10 và lớn hơn 2000.
  4. Nó thực hiện thành công nhưng không có kết quả nào được hiển thị.

Answer: C. Mệnh đề HAVING có thể áp đặt nhiều điều kiện được kết hợp bằng cách sử dụng toán tử AND hoặc OR để lọc các nhóm.

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

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

Answer: B, D. Hàm nhóm AVG và SUM chỉ có thể được sử dụng với dữ liệu số.

51. Which of the following statements are true?

  1. AVG và SUM chỉ có thể được sử dụng với các kiểu dữ liệu số.
  2. STDDEV và VARIANCE chỉ có thể được sử dụng với các kiểu dữ liệu số.
  3. MAX có thể được sử dụng với kiểu dữ liệu LONG.
  4. MAX và MIN không thể được sử dụng với kiểu dữ liệu LOB hoặc LONG.

Answer: A, B, D. Các hàm nhóm AVG, SUM, VARIANCE và STDDEV chỉ có thể được sử dụng với dữ liệu số. Không có hàm nào trong nhóm có thể được sử dụng với kiểu dữ liệu 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)

Xác định lỗi trong truy vấn dưới đây.

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. Không thể sử dụng nhiều hàm tổng hợp trong một truy vấn SELECT
  2. Mệnh đề GROUP BY không hợp lệ
  3. Không thể sử dụng hàm COUNT với các giá trị DATE
  4. Không có lỗi và nó thực thi thành công

Answer: D.

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

  1. MAX
  2. MIN
  3. COUNT
  4. Không ai trong số này

Answer: D. Không có hàm tổng hợp nào có thể được sử dụng với các kiểu dữ liệu 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)

Dự đoán đầu ra của hai truy vấn dưới đây

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. Cả hai truy vấn đều cho kết quả giống nhau
  2. Truy vấn - 1 và Truy vấn - 2 tạo ra các kết quả khác nhau vì Truy vấn-1 coi giá trị NULL của COMM và Truy vấn-2 thay thế giá trị NULL của COMM bằng 0
  3. Truy vấn - 1 tạo ra lỗi vì COMM có giá trị NULL
  4. Truy vấn - 2 tạo ra lỗi vì NVL không thể được lồng với hàm tổng hợp.

Answer: B. Hàm AVG bỏ qua các giá trị NULL trong khi tính giá trị trung bình của dữ liệu số. AVG (cột) sẽ tính trung bình chỉ cho các giá trị không rỗng. Tuy nhiên, nếu NVL được sử dụng để thay thế các NULL bằng 0, tất cả các giá trị sẽ được xem xét.

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

  1. Bí danh cột có thể được sử dụng trong mệnh đề GROUP BY.
  2. Cột GROUP BY phải nằm trong mệnh đề SELECT.
  3. Mệnh đề GROUP BY phải xuất hiện cùng với mệnh đề HAVING một truy vấn SELECT.
  4. Mệnh đề GROUP BY phải xuất hiện sau mệnh đề WHERE trong truy vấn SELECT.

Answer: D. Theo trình tự xử lý, mệnh đề GROUP BY phải xuất hiện sau mệnh đề WHERE trong truy vấn 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)

Dự đoán kết quả của truy vấn dưới đây

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. Nó gây ra lỗi vì danh sách cột GROUP BY không khớp với danh sách cột CHỌN.
  2. Nó thực hiện thành công và tạo ra mức lương trung bình của một loại công việc trong mỗi bộ phận.
  3. Nó thực hiện thành công và tạo ra mức lương trung bình cho một bộ phận trong từng hạng mục công việc.
  4. Nó ném ra lỗi vì mệnh đề GROUP BY và ORDER BY có danh sách các cột khác nhau.

Answer: B. Mặc dù mệnh đề GROUP BY sắp xếp các nhóm một cách ngầm định, mệnh đề GROUP BY và ORDER BY có thể được sử dụng cùng nhau trong một truy vấn.

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

  1. WHERE
  2. HAVING
  3. NHÓM THEO
  4. ĐẶT BỞI

Answer: B. Mệnh đề HAVING được sử dụng để hạn chế các nhóm.

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. Nó thực thi thành công.
  2. Nó ném ra lỗi vì mệnh đề HAVING đứng trước mệnh đề GROUP BY.
  3. Nó ném ra lỗi vì mệnh đề HAVING sử dụng hàm tổng hợp.
  4. Nó thực thi nhưng không có kết quả nào được hiển thị vì mệnh đề HAVING đứng trước mệnh đề GROUP BY.

Answer: A. Mệnh đề HAVING có thể đứng trước mệnh đề GROUP BY nhưng nó chỉ được xử lý sau khi kết quả nhóm được tính toán.

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. Nó trả về một lỗi vì không thể sử dụng toán tử BETWEEN trong mệnh đề HAVING.
  2. Nó trả về lỗi vì mệnh đề WHERE và HAVING không thể được sử dụng trong cùng một câu lệnh SELECT.
  3. Nó trả về lỗi vì mệnh đề WHERE và HAVING không thể được sử dụng để áp dụng các điều kiện trên cùng một cột.
  4. Nó thực thi thành công.

Answer: D. Mệnh đề WHERE hạn chế số hàng tham gia xử lý mệnh đề nhóm.

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

  1. Mệnh đề HAVING có thể được sử dụng với các hàm nhóm trong các truy vấn con.
  2. Mệnh đề WHERE có thể được sử dụng để loại trừ các hàng sau khi chia chúng thành các nhóm.
  3. Mệnh đề WHERE có thể được sử dụng để loại trừ các hàng trước khi chia chúng thành các nhóm.
  4. Mệnh đề WHERE và HAVING chỉ có thể được sử dụng trong cùng một câu lệnh nếu chúng được áp dụng cho các cột khác nhau trong bảng.

Answer: A, C. Mệnh đề WHERE và HAVING có thể được sử dụng cùng nhau trong một truy vấn. WHERE loại trừ các hàng trước khi xử lý nhóm trong khi HAVING hạn chế các nhóm.

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. Nó ném ra một lỗi vì các hàm tổng hợp được sử dụng trong mệnh đề HAVING phải nằm trong danh sách SELECT.
  2. Nó tạo ra một lỗi vì mệnh đề HAVING xuất hiện trước mệnh đề GROUP BY.
  3. Nó hiển thị các bộ phận có mức lương trung bình lớn hơn mức lương tối thiểu của bộ phận.
  4. Nó hiển thị các phòng ban có mức lương trung bình lớn hơn mức lương tối thiểu của tổ chức.

Answer: C. Các hàm nhóm có thể được sử dụng bởi mệnh đề HAVING để lọc các nhóm.

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. Nó tính toán tổng độ dài trung bình của tên nhân viên trong mỗi bộ phận.
  2. Nó tính toán độ dài trung bình của tên nhân viên trong mỗi bộ phận.
  3. Nó gây ra lỗi vì không thể sử dụng chức năng hàng đơn với các chức năng nhóm.
  4. Nó gây ra lỗi vì cột nhóm DEPARTMENT_ID không được sử dụng trong danh sách CHỌN.

Answer: A. Các hàm nhóm có thể được sử dụng với một hàng hoặc các hàm chung trong truy vấn SELECT.

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

  1. 1
  2. 2
  3. 3
  4. Không giới hạn

Answer: B. Các chức năng nhóm có thể được lồng vào nhau tối đa lên đến 2 cấp độ. Tuy nhiên, các hàm hàng đơn có thể được lồng vào bất kỳ số cấp nào.

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

  1. 1
  2. 2
  3. 3
  4. Không giới hạn

Answer: D. Không có giới hạn về số lượng nhóm và nhóm con có thể được hình thành.

65. Choose the correct statements about the HAVING clause.

  1. Mệnh đề HAVING là một mệnh đề tùy chọn trong câu lệnh SELECT.
  2. Mệnh đề HAVING là mệnh đề bắt buộc nếu câu lệnh SELECT sử dụng mệnh đề GROUP BY.
  3. Mệnh đề HAVING chỉ có thể xuất hiện trong câu lệnh SELECT nếu nó sử dụng mệnh đề GROUP BY.
  4. Mệnh đề HAVING là mệnh đề bắt buộc nếu câu lệnh SELECT sử dụng mệnh đề GROUP BY.

Answer: A, C. Mệnh đề HAVING chỉ có thể xuất hiện trong một truy vấn nếu mệnh đề GROUP BY có mặt, nhưng ngược lại thì không đúng.

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. Lỗi ném vì không thể áp dụng các chức năng nhóm trên bảng DUAL.

Answer: A. Bảng KÉP chứa một cột DUMMY kiểu CHAR (1) có giá trị là 'X'.

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

Một tổ chức có 14 công nhân viên làm việc hưởng lương cố định 1000. Công ty tuyển dụng 5 nhân viên mới mà bộ phận tính lương chưa ấn định mức lương. Tuy nhiên, trong quá trình xử lý cuối tháng, bộ phận tính lương nhân sự tạo ra một số báo cáo để đối chiếu số liệu tài chính của tổ chức. Kiểm tra cấu trúc bảng như đã cho.

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. Hàm SUM bổ sung tiền lương của nhân viên.

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. Hàm AVG (lương) tính toán mức lương trung bình và bỏ qua các giá trị NULL. Trong trường hợp này, AVG (lương) = (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. AVG (NVL (lương, 0)) cung cấp một giá trị thay thế cho các NULL và cho phép chúng tham gia vào tính toán trung bình. Trong trường hợp này, (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 (lương) tính toán phương sai của giá trị cột lương bỏ qua NULL.

71. What is the output of the below query?

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

Answer: D. VARIANCE (NL (lương, 0)) tính toán phương sai của các giá trị cột lương bao gồm cả 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 (lương) tính toán độ lệch chuẩn của các giá trị cột lương bỏ qua 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. STDDEV (nvl (lương, 0)) tính toán độ lệch chuẩn của các giá trị cột lương bao gồm cả 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 (*) bao gồm NULL trong khi COUNT (lương) bỏ qua giá trị 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)

Truy vấn nào dưới đây sẽ cung cấp cho bộ phận có hơn 5 nhân viên làm việc trong đó?

  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. Cho phép thực hiện nhiều mệnh đề GROUP BY với một truy vấn duy nhất.
  2. Thực hiện tổng hợp cho tất cả các kết hợp có thể có của các cột được bao gồm.
  3. Thực hiện tăng mức độ tổng phụ tích lũy, dựa trên danh sách cột được cung cấp.
  4. Không có cái nào ở trên

Answer: B. CUBE, ROLLUP là các phần mở rộng GROUP BY được sử dụng để xử lý OLAP. CUBE tổng hợp kết quả bất cứ khi nào một hoán vị cột mới được hình thành.

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. Mệnh đề WHERE được sử dụng để hạn chế các hàng trước khi các nhóm được hình thành.

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 được sử dụng để hạn chế kết quả nhóm sau khi quá trình xử lý nhóm kết thúc.

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. Mệnh đề GROUP BY sử dụng nhóm theo cột để nhóm dữ liệu trong bảng.

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

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

Answer: C. Vì mệnh đề SELECT chứa cột CUSTOMER #, nên bắt buộc phải có mệnh đề GROUP BY với cột CUSTOMER #.

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

  1. Số lượng bản ghi trong các bảng được chỉ định
  2. Số lượng đơn đặt hàng của mỗi khách hàng
  3. Số lượng giá trị NULL trong các bảng được chỉ định
  4. Số lượng khách hàng đã đặt hàng

Answer: B. Nó đếm số hàng xử lý trong một nhóm. Trong trường hợp này, nhóm được thành lập bởi khách hàng và COUNT (*) đếm các đơn hàng được đặt bởi mỗi khách hàng.

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

  1. COUNT hàm
  2. Hàm MAX
  3. Hàm MIN
  4. Hàm STDDEV

Answer: C. Hàm MIN được sử dụng để lấy giá trị nhỏ nhất của cột. Khi được sử dụng với các cột ngày, nó sẽ tìm nạp ngày tối thiểu từ cột.

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. Mệnh đề GROUP BY phải chỉ định một cột hoặc tập hợp các cột có trong mệnh đề SELECT. Ở đây PUBID không được chứa trong mệnh đề SELECT, do đó truy vấn không hợp lệ.

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

  1. Các chức năng bên trong nhất được giải quyết đầu tiên.
  2. Oracle cho phép lồng chức năng nhóm lên đến 3 cấp độ.
  3. Các hàm hàng đơn có thể được lồng với các hàm nhóm.
  4. Oracle cho phép lồng chức năng nhóm lên đến 2 cấp độ.

Answer: A, C, D. Trong một biểu thức chứa các hàm lồng nhau, hàm trong cùng được thực thi đầu tiên mà kết quả của nó được đưa vào hàm tiếp theo di chuyển theo hướng ra ngoài. Các chức năng hàng đơn có thể được sử dụng tốt với các chức năng nhóm có thể được lồng tối đa lên đến 2 cấp.

85. What are the statistical group functions in Oracle?

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

Answer: B, C. VARIANCE và STATS là các hàm nhóm thống kê có sẵn trong Oracle SQL.

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

  1. ĐẶT BỞI
  2. HAVING
  3. NHÓM THEO
  4. Không ai trong số này

Answer: C. Mệnh đề GROUP BY nhất thiết phải chứa cột hoặc tập hợp các cột có trong mệnh đề 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)

Lời giải thích tốt nhất về lý do tại sao câu lệnh SQL này KHÔNG thực thi là gì?

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. Tiền lương không thể được tính trung bình vì không phải tất cả các con số sẽ chia đều.
  2. Bạn không thể sử dụng bí danh cột trong mệnh đề GROUP BY.
  3. Mệnh đề GROUP BY phải có một cái gì đó để GROUP.
  4. Id phòng ban không được liệt kê trong bảng phòng ban.

Answer: B. Cả mệnh đề GROUP BY và mệnh đề HAVING đều không hoạt động với bí danh cột.

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

  1. Chỉ các kiểu dữ liệu số
  2. Chỉ số nguyên
  3. Mọi loại dữ liệu
  4. Tất cả ngoại trừ số

Answer: A. Các hàm AVG, SUM, VARIANCE và STDDEV bắt buộc chỉ hoạt động với kiểu dữ liệu số.

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. Sử dụng công cụ sửa đổi DISTINCT để lọc ra các từ khóa trùng lặp.

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;

Tại sao câu lệnh này sẽ gây ra lỗi?

  1. Thiếu mệnh đề HAVING.
  2. Mệnh đề WHERE có lỗi cú pháp.
  3. Cột LƯƠNG KHÔNG được bao gồm trong mệnh đề GROUP BY.
  4. Cột HIRE_DATE KHÔNG được bao gồm trong mệnh đề GROUP BY.

Answer: D. Tất cả các cột xuất hiện trong mệnh đề SELECT và ORDER BY phải được đưa vào mệnh đề GROUP BY.

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

  1. Để loại trừ các hàng trước khi chia chúng thành các nhóm bằng mệnh đề GROUP BY, bạn nên sử dụng mệnh đề WHERE.
  2. Bạn phải sử dụng mệnh đề HAVING với mệnh đề GROUP BY.
  3. Bí danh cột có thể được sử dụng trong mệnh đề GROUP BY.
  4. Theo mặc định, các hàng không được sắp xếp khi sử dụng mệnh đề GROUP BY.

Answer: A. Sử dụng mệnh đề WHERE, bạn có thể loại trừ các hàng trước khi chia chúng thành các nhóm.

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)

Giải thích kết quả của truy vấn dưới đây.

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. Ngày thuê sớm nhất trong tổ chức.
  2. Ngày thuê mới nhất trong tổ chức.
  3. Ngày thuê sớm nhất trong một bộ phận.
  4. Ngày thuê mới nhất trong một bộ phận.

Answer: C. Truy vấn trả về nhân viên được thuê sớm nhất trong mỗi bộ phận.

93. Which statement about group functions is true?

  1. Nhóm các hàm ngoại trừ COUNT (*), bỏ qua các giá trị rỗng.
  2. Một truy vấn bao gồm một hàm nhóm trong danh sách CHỌN phải bao gồm một mệnh đề GROUP BY.
  3. Các hàm nhóm có thể được sử dụng trong mệnh đề WHERE.
  4. Các hàm nhóm chỉ có thể được sử dụng trong danh sách CHỌN.

Answer: A. Tất cả các hàm nhóm ngoại trừ COUNT (*), bỏ qua các giá trị NULL. Đó là bởi vì chúng xử lý các giá trị trực tiếp chứa trong một cột cụ thể.

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

  1. GROUP BY MAX (lương)
  2. ĐẶT HÀNG BẰNG AVG (lương)
  3. CÓ TỐI ĐA (lương)> 10000
  4. CHỌN AVG (NVL (lương, 0))

Answer: B, C, D. Hàm nhóm chỉ có thể xuất hiện trong các mệnh đề SELECT, HAVING và ORDER BY.

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

  1. Cột cuối cùng được liệt kê trong mệnh đề GROUP BY là nhóm chính nhất.
  2. Cột đầu tiên được liệt kê trong mệnh đề GROUP BY là nhóm chính nhất.
  3. Không thể sử dụng mệnh đề GROUP BY nếu không có mệnh đề ORDER BY.
  4. Mệnh đề GROUP BY không đảm bảo việc sắp xếp đầu ra.

Answer: B. Việc nhóm dữ liệu dựa trên trình tự các cột xuất hiện trong mệnh đề GROUP BY.

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

  1. Mệnh đề WHERE hạn chế các hàng trước khi phân nhóm trong khi mệnh đề HAVING hạn chế các nhóm.
  2. Mệnh đề WHERE không thể chứa một hàm nhóm nhưng mệnh đề HAVING có thể có.
  3. Mệnh đề WHERE có thể kết hợp nhiều điều kiện bằng cách sử dụng toán tử AND hoặc OR nhưng mệnh đề HAVING thì không.
  4. Mệnh đề WHERE có thể xuất hiện trong truy vấn SELECT mà không có mệnh đề GROUP BY nhưng mệnh đề HAVING thì không.

Answer: A, B, D. Mệnh đề WHERE hạn chế các hàng trước khi nhóm nhưng HAVING hạn chế các nhóm.

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)

Dự đoán kết quả của truy vấn dưới đây.

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. Nó thực thi thành công.
  2. Nó ném ra lỗi vì mệnh đề ORDER BY không hợp lệ.
  3. Nó phát ra lỗi vì mệnh đề GROUP BY không hợp lệ.
  4. Nó gây ra lỗi vì mệnh đề GROUP BY và ORDER BY không thể được sử dụng cùng nhau.

Answer: A. Mệnh đề ORDER BY có thể sử dụng các hàm nhóm để sắp xếp.