การใช้คำถามเกี่ยวกับฟังก์ชันกลุ่ม

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

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

Answer: C. NVL เป็นฟังก์ชันทั่วไปที่ใช้เพื่อระบุค่าทางเลือกให้กับค่า NULL ฟังก์ชัน MAX, MIN และ AVG สามารถใช้เป็นฟังก์ชัน 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. ฟังก์ชันกลุ่มที่แสดงรายการทั้งหมดสามารถใช้ในแบบสอบถามได้หากไม่มีการเลือกคอลัมน์อื่นในคิวรี 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. ฟังก์ชัน MAX สามารถใช้เพื่อคืนเงินเดือนสูงสุดในแผนกที่แต่ละกลุ่มตั้งขึ้นโดยแผนก

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

  1. ฟังก์ชัน COUNT จะนับจำนวนแถว
  2. ฟังก์ชัน COUNT (*) จะนับจำนวนแถวที่มีค่าซ้ำและค่า NULL
  3. ฟังก์ชัน COUNT (DISTINCT) จะนับจำนวนแถวที่แตกต่างกัน
  4. COUNT (*) เทียบเท่ากับ COUNT (ALL)

Answer: B. COUNT (*) จะนับจำนวนแถวรวมทั้งรายการที่ซ้ำกันและค่า NULL ใช้คำสำคัญ DISTINCT และ ALL เพื่อ จำกัด ค่าที่ซ้ำกันและค่า NULL

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

  1. ตารางที่ซ้อนกัน
  2. NUMBER
  3. CLOB
  4. DATE

Answer: B. ชนิดข้อมูลสำหรับฟังก์ชันที่มีอาร์กิวเมนต์อาจเป็น CHAR, VARCHAR2, NUMBER หรือ 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. โยนข้อยกเว้นเนื่องจากฟังก์ชัน COUNT ไม่ทำงานกับค่า NULL

Answer: A. COUNT (*) จะนับจำนวนแถวรวมทั้งรายการที่ซ้ำกันและค่า NULL ใช้คำสำคัญ DISTINCT และ ALL เพื่อ จำกัด ค่าที่ซ้ำกันและค่า 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. โยนข้อยกเว้นเนื่องจากฟังก์ชัน COUNT ไม่ทำงานกับค่า NULL

Answer: C. COUNT (คอลัมน์) ละเว้นค่า NULL แต่จะนับค่าที่ซ้ำกัน

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. โยนข้อยกเว้นเนื่องจากฟังก์ชัน COUNT ไม่ทำงานกับค่า NULL

Answer: C. COUNT (คอลัมน์ทั้งหมด) ละเว้นค่า NULL แต่จะนับรายการที่ซ้ำกัน

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. โยนข้อยกเว้นเนื่องจากฟังก์ชัน COUNT ไม่ทำงานกับค่า NULL

Answer: B. COUNT (คอลัมน์ DISTINCT) นับค่าที่ไม่ซ้ำกันที่ไม่ใช่ค่าว่าง

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

SELECT COUNT() FROM dual;
  1. ดำเนินการสำเร็จและไม่ส่งคืนเอาต์พุต
  2. ดำเนินการสำเร็จและส่งคืนเอาต์พุตเป็น '1'
  3. แสดงข้อยกเว้น "ORA-00909: จำนวนอาร์กิวเมนต์ไม่ถูกต้อง"
  4. แสดงข้อยกเว้น "ORA-00904:" COUNT ": ตัวระบุที่ไม่ถูกต้อง" เนื่องจากฟังก์ชัน COUNT ไม่ทำงานกับตาราง DUAL

Answer: C. ฟังก์ชัน COUNT ต้องการอาร์กิวเมนต์ขั้นต่ำหนึ่งรายการซึ่งอาจเป็นคอลัมน์ที่มี [ALL | DISTINCT] โมดิฟายเออร์หรือ "*"

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

ผม. ฟังก์ชันนี้รับอินพุตตัวเลขหลายรายการและส่งกลับค่าความแปรปรวนของค่าทั้งหมด

ii. ฟังก์ชันยอมรับคอลัมน์ตัวเลขและส่งกลับค่าความแปรปรวนของค่าคอลัมน์ทั้งหมดรวมทั้ง NULL

สาม. ฟังก์ชันยอมรับคอลัมน์ตัวเลขและส่งกลับค่าความแปรปรวนของค่าคอลัมน์ทั้งหมดไม่รวมค่า NULL

เลือกชุดค่าผสมที่ถูกต้องจากตัวเลือกด้านล่าง

  1. ฉันและ iii
  2. ฉันและ ii
  3. ii
  4. iii

Answer: C. ฟังก์ชัน VARIANCE ยอมรับอาร์กิวเมนต์ตัวเลขเดี่ยวเป็นชื่อคอลัมน์และส่งกลับค่าความแปรปรวนของค่าคอลัมน์ทั้งหมดโดยพิจารณาจากค่า NULL

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

  1. GROUP BY
  2. ชุดการจัดกลุ่ม
  3. CUBE
  4. ROLLUP

Answer: A. การดำเนินการ GROUPING SETS สามารถใช้เพื่อดำเนินการ GROUP BY การรวมหลายรายการด้วยแบบสอบถามเดียว

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 เป็นกลุ่มตามฟังก์ชันเนื่องจากประมวลผลกลุ่มพนักงานที่ทำงานในแผนก
  2. SUM เป็นฟังก์ชันรวมเนื่องจากสร้างผลลัพธ์หนึ่งรายการต่อกลุ่มข้อมูล
  3. SUM เป็นฟังก์ชันแถวเดียวเนื่องจากส่งคืนค่าเดียวสำหรับกลุ่มเช่นแผนก
  4. SUM เป็นกลุ่มตามฟังก์ชันส่วนขยายเนื่องจากใช้ GROUP BY clause เพื่อจัดกลุ่มแผนกอย่างมีเหตุผล

Answer: A. SUM เป็นฟังก์ชันกลุ่มที่คำนวณผลรวมของเงินเดือนของกลุ่มพนักงานที่ทำงานในแผนก

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

  1. WHERE
  2. LIMIT
  3. GROUP WHERE
  4. HAVING

Answer: D. HAVING Clause ใช้สำหรับ จำกัด ผลลัพธ์กลุ่ม คุณใช้คำสั่ง HAVING เพื่อระบุกลุ่มที่จะแสดงดังนั้นจึง จำกัด กลุ่มเพิ่มเติมตามข้อมูลรวม HAVING clause สามารถนำหน้า GROUP BY clause ได้ แต่ขอแนะนำให้คุณวาง GROUP BY clause ก่อนเพราะมันมีเหตุผลมากกว่า กลุ่มถูกสร้างขึ้นและฟังก์ชันกลุ่มจะถูกคำนวณก่อนที่จะใช้คำสั่ง HAVING กับกลุ่มในรายการ 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. แบบสอบถามส่งคืนจำนวนพนักงานที่ไม่มีค่าคอมมิชชั่น
  2. แบบสอบถามแสดงข้อผิดพลาดเนื่องจากไม่สามารถใช้เครื่องหมายเท่ากับเมื่อค้นหาค่า NULL
  3. แบบสอบถามส่งคืนจำนวนพนักงานในแผนกที่มีค่าคอมมิชชั่นเป็นค่า NULL
  4. ข้อความค้นหาแสดงข้อผิดพลาดเนื่องจากคำสั่ง GROUP BY ขาดหายไปในแบบสอบถาม

Answer: B. การแยก NULL ออกโดยใช้เงื่อนไข WHERE เป็นวิธีที่จะกำหนดทิศทางการสืบค้นให้ละเว้น NULL แต่ที่นี่การใช้ตัวดำเนินการ IS NULL ไม่ถูกต้อง เงื่อนไขควรเป็น 'WHERE comm IS NULL'

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

  1. ฟังก์ชัน MIN สามารถใช้ได้กับข้อมูลตัวเลขเท่านั้น
  2. ฟังก์ชัน MAX สามารถใช้ได้กับค่าวันที่เท่านั้น
  3. ฟังก์ชัน AVG สามารถใช้ได้กับข้อมูลตัวเลขเท่านั้น
  4. ฟังก์ชัน SUM ไม่สามารถเป็นส่วนหนึ่งของฟังก์ชันที่ซ้อนกันได้

Answer: C. ฟังก์ชัน AVG สามารถใช้ได้กับค่าตัวเลขเท่านั้น ฟังก์ชันอื่น ๆ ที่มีข้อ จำกัด เช่น SUM, STDDEV และ 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. ไม่สามารถใช้นามแฝงคอลัมน์ใน GROUP BY หรือ HAVING clause

18. Which of the following statements is correct?

  1. คำสั่ง WHERE สามารถมีฟังก์ชันกลุ่มได้ก็ต่อเมื่อฟังก์ชันนั้นไม่มีอยู่ในรายการคำสั่ง SELECT
  2. ฟังก์ชันกลุ่มไม่สามารถใช้ในส่วนคำสั่ง SELECT, FROM หรือ WHERE ได้
  3. HAVING clause จะถูกประมวลผลก่อน WHERE clause เสมอ
  4. GROUP BY clause จะถูกประมวลผลก่อน HAVING clause เสมอ

Answer: D. แม้ว่า Oracle จะไม่แสดงข้อผิดพลาดหาก HAVING clause นำหน้า GROUP BY clause แต่จะถูกประมวลผลหลังจากที่ GROUP BY clause ได้รับการประมวลผลและกลุ่มพร้อมที่จะกรองแล้ว

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. สามารถใช้ฟังก์ชัน COUNT เพื่อกำหนดจำนวนแถวที่มีค่า NULL
  2. เฉพาะค่าที่แตกต่างกันเท่านั้นที่รวมอยู่ในฟังก์ชันกลุ่มเว้นแต่คีย์เวิร์ด ALL จะรวมอยู่ในส่วนคำสั่ง SELECT
  3. คำสั่ง WHERE จำกัด ว่าจะประมวลผลแถวใด
  4. ส่วนคำสั่ง HAVING กำหนดกลุ่มที่จะแสดงในผลลัพธ์ของคิวรี

Answer: C, D. WHERE clause จะ จำกัด แถวก่อนที่จะถูกจัดกลุ่มและประมวลผลในขณะที่ HAVING clause จะ จำกัด กลุ่ม

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. คำสั่ง GROUP BY ต้องมีคอลัมน์ทั้งหมดยกเว้นคอลัมน์ที่ใช้ภายในฟังก์ชันกลุ่ม

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. ไม่มีข้อใดข้างต้น

Answer: A.

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

1. ฟังก์ชันกลุ่มสามารถซ้อนอยู่ภายในฟังก์ชันกลุ่ม

2. ฟังก์ชันกลุ่มสามารถซ้อนอยู่ภายในฟังก์ชันแถวเดียว

3. ฟังก์ชันแถวเดียวสามารถซ้อนอยู่ภายในฟังก์ชันกลุ่ม

  1. 1
  2. 2
  3. 3
  4. 1 และ 3

Answer: A, B, C. ฟังก์ชันกลุ่มสามารถซ้อนกันได้เฉพาะระดับความลึกสองเท่านั้น ฟังก์ชันกลุ่มสามารถซ้อนกันภายในฟังก์ชันแถวเดียว (AVG ฝังอยู่ในฟังก์ชัน TO_CHAR) นอกจากนี้ฟังก์ชันแถวเดียวสามารถซ้อนกันภายในฟังก์ชันกลุ่ม

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. ฟังก์ชัน SUM ใช้เพื่อเพิ่มค่าตัวเลข

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. ไม่มีข้อใดข้างต้น

Answer: A. เนื่องจากต้อง จำกัด หมวดหมู่ FAMILY ก่อนจัดกลุ่มจึงต้องกรองแถวของตารางโดยใช้ WHERE clause ไม่ใช่ HAVING clause

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 เป็นฟังก์ชันทั่วไปในการระบุค่าอื่นให้กับค่า NULL มันสามารถสร้างความแตกต่างในการคำนวณเลขคณิตโดยใช้ฟังก์ชันกลุ่ม AVG, STDDEV และ VARIANCE

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

  1. คุณต้องป้อนคีย์เวิร์ด ALL ในฟังก์ชันกลุ่มเพื่อรวมค่าที่ซ้ำกันทั้งหมด
  2. ฟังก์ชัน AVG สามารถใช้เพื่อค้นหาความแตกต่างที่คำนวณได้โดยเฉลี่ยระหว่างวันที่สองวัน
  3. ฟังก์ชัน MIN และ MAX สามารถใช้ได้กับคอลัมน์ VARCHAR2
  4. ทั้งหมดที่กล่าวมา

Answer: A. คีย์เวิร์ด ALL นับคำที่ซ้ำกัน แต่ละเว้น NULL รายการที่ซ้ำกันยังรวมอยู่ใน '*' และข้อกำหนดชื่อคอลัมน์

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. เมื่อพิจารณาลูกค้าทั้งหมดเป็นกลุ่มเดียว COUNT (อ้างถึง) จะนับเฉพาะผู้ที่ถูกอ้างถึงโดยใครบางคน COUNT (อ้างถึง) จะละเว้นค่า NULL ของคอลัมน์

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

1. เลือก

2. จาก

3. ที่ไหน

4. GROUP BY

5. การพักผ่อน

6. สั่งซื้อโดย

  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. ลำดับการประมวลผลเริ่มต้นจาก FROM clause เพื่อรับชื่อตารางจากนั้น จำกัด แถวโดยใช้ WHERE clause โดยจัดกลุ่มโดยใช้ GROUP BY clause จำกัด กลุ่มโดยใช้ HAVING clause ORDER BY clause คือคำสั่งสุดท้ายที่จะประมวลผลเพื่อเรียงลำดับชุดข้อมูลสุดท้าย

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. GROUP BY
  4. GROUPING

Answer: C. GROUP BY clause จะสร้างกลุ่มของข้อมูลตามรายการคอลัมน์ที่ระบุ

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. คำสั่ง SELECT
  2. WHERE ประโยค
  3. ORDER BY clause
  4. GROUP BY clause

Answer: A, C, D. ฟังก์ชันกลุ่มสามารถปรากฏในส่วนคำสั่ง SELECT, ORDER BY และ HAVING Oracle ยกข้อยกเว้นหากใช้ฟังก์ชันกลุ่มในส่วนคำสั่ง WHERE หรือ 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. ฟังก์ชัน MIN ส่งคืนเงินเดือนขั้นต่ำในกลุ่มที่ตั้งโดยแผนก

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. มันแสดงข้อผิดพลาดเนื่องจากสามารถใช้ฟังก์ชันการรวมได้เพียงฟังก์ชันเดียวในแบบสอบถาม
  2. มันแสดงข้อผิดพลาดเนื่องจาก GROUP BY clause หายไป
  3. ดำเนินการสำเร็จและส่งคืนค่าเดียวกันสำหรับทั้งสองอย่าง
  4. มันดำเนินการสำเร็จโดยที่ COUNT (*) รวมทั้ง NULL และ COUNT (comm ทั้งหมด) ไม่รวม NULL

Answer: D.

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

  1. คุณสามารถใช้ฟังก์ชันกลุ่มในประโยคใดก็ได้ของคำสั่ง SELECT
  2. คุณสามารถใช้ฟังก์ชันกลุ่มได้เฉพาะในรายการคอลัมน์ของส่วนคำสั่ง select และในส่วนคำสั่ง WHERE ของคำสั่ง SELECT
  3. คุณสามารถผสมคอลัมน์แถวเดียวกับฟังก์ชันกลุ่มในรายการคอลัมน์ของคำสั่ง SELECT โดยการจัดกลุ่มบนคอลัมน์แถวเดียว
  4. คุณสามารถส่งชื่อคอลัมน์นิพจน์ค่าคงที่หรือฟังก์ชันเป็นพารามิเตอร์ไปยังฟังก์ชันกลุ่ม

Answer: C. ฟังก์ชันกลุ่มสามารถซ้อนกันได้เฉพาะระดับความลึกสองเท่านั้น ฟังก์ชันกลุ่มสามารถซ้อนกันภายในฟังก์ชันแถวเดียว (AVG ฝังอยู่ในฟังก์ชัน TO_CHAR) นอกจากนี้ฟังก์ชันแถวเดียวสามารถซ้อนกันภายในฟังก์ชันกลุ่ม

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 ;

ข้อความใดเป็นจริงเกี่ยวกับการดำเนินการตามข้อความข้างต้น

  1. มุมมองจะถูกสร้างขึ้นและคุณสามารถดำเนินการ DLM บนมุมมองได้
  2. ข้อมูลพร็อพเพอร์ตี้จะไม่ถูกสร้างขึ้นเนื่องจากไม่อนุญาตให้ใช้คำสั่ง join สำหรับการสร้างมุมมอง
  3. มุมมองจะไม่ถูกสร้างขึ้นเนื่องจากไม่อนุญาตให้ใช้คำสั่ง GROUP BY สำหรับการสร้างมุมมอง
  4. มุมมองจะถูกสร้างขึ้น แต่จะไม่อนุญาตให้ดำเนินการ DML บนมุมมอง

Answer: D. กฎสำหรับการดำเนินการ DML ในมุมมอง คุณไม่สามารถเพิ่มข้อมูลผ่านมุมมองได้หากมุมมองมีฟังก์ชันกลุ่มหรือคำสั่ง GROUP BY หรือคำหลัก DISTINCT คอลัมน์หลอก ROWNUM คีย์เวิร์ดคอลัมน์ที่กำหนดโดยนิพจน์ไม่ใช่คอลัมน์ NULL ในตารางฐานที่มุมมองไม่ได้เลือก

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

  1. แบบสอบถามย่อยที่กำหนดมุมมองไม่สามารถรวมคำสั่ง GROUP BY
  2. มุมมองถูกสร้างขึ้นด้วยแบบสอบถามย่อยที่มีคีย์เวิร์ด DISTINCT สามารถอัปเดตได้
  3. การดำเนินการ Data Manipulation Language (DML) สามารถทำได้บนมุมมองที่สร้างขึ้นด้วยแบบสอบถามย่อยที่มีคอลัมน์ NOT NULL ทั้งหมดของตาราง
  4. ไม่สามารถอัปเดตมุมมองที่สร้างขึ้นด้วยคิวรีย่อยที่มีคีย์เวิร์ด ROWNUM คอลัมน์หลอก

Answer: C, D. กฎสำหรับการดำเนินการ DML ในมุมมอง คุณไม่สามารถเพิ่มข้อมูลผ่านมุมมองได้หากมุมมองมีฟังก์ชันกลุ่มหรือคำสั่ง GROUP BY หรือคำหลัก DISTINCT คอลัมน์หลอก ROWNUM คีย์เวิร์ดคอลัมน์ที่กำหนดโดยนิพจน์ไม่ใช่คอลัมน์ NULL ในตารางฐานที่มุมมองไม่ได้เลือก

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)

ข้อใดในแบบสอบถาม SQL ด้านล่างสร้างข้อผิดพลาด

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. สั่งโดย
  4. GROUP BY

Answer: D. GROUP BY clause ต้องมีคอลัมน์ทั้งหมดที่ปรากฏในคำสั่ง SELECT ทำให้เกิดข้อผิดพลาดเนื่องจาก JOB ไม่ใช่คอลัมน์ที่เลือก ควรใช้ DEPARTMENT_ID ในตำแหน่งของ 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)

ข้อความค้นหา SELECT ข้อใดด้านล่างจะแสดงเงินเดือนสูงสุดและขั้นต่ำที่ได้รับจากแต่ละประเภทงาน

  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. ไม่สามารถใช้ฟังก์ชันการรวมสองฟังก์ชันร่วมกันในคำสั่ง SELECT

Answer: B. ฟังก์ชันกลุ่มมากกว่าหนึ่งฟังก์ชันสามารถปรากฏในคำสั่ง 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)

ตรวจสอบข้อผิดพลาดในแบบสอบถามด้านล่าง

SELECT department_id 
FROM employees 
WHERE hiredate > '01-JAN-1985'
AND COUNT(*) > 2
GROUP by department_id 
HAVING SUM (salary ) > 1000;
  1. ดำเนินการสำเร็จและสร้างผลลัพธ์ที่ต้องการ
  2. ทำให้เกิดข้อผิดพลาดเนื่องจากควรระบุ COUNT (*) ในส่วนคำสั่ง SELECT ด้วย
  3. ดำเนินการสำเร็จ แต่ไม่สร้างผลลัพธ์เนื่องจากควรใช้ COUNT (prod_id) แทน COUNT (*)
  4. ทำให้เกิดข้อผิดพลาดเนื่องจาก COUNT (*) ควรอยู่ใน HAVING clause เท่านั้นและไม่อยู่ใน WHERE clause

Answer: D. ไม่สามารถใช้ฟังก์ชันกลุ่มในคำสั่ง WHERE สามารถปรากฏในคำสั่ง SELECT, HAVING และ 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)

ทำนายผลลัพธ์ของแบบสอบถามด้านล่าง

SELECT job, COUNT(employee_id ),sum(salary )
FROM employees 
GROUP BY job
HAVING SUM (salary ) > 5000;
  1. ดำเนินการสำเร็จและแสดงรายการจำนวนพนักงานภายใต้แต่ละประเภทงาน แต่ไม่สนใจ HAVING clause เนื่องจาก "เงินเดือน" ไม่อยู่ใน GROUP BY clause
  2. มันแสดงข้อผิดพลาดเนื่องจาก HAVING clause ไม่ถูกต้อง
  3. มีข้อผิดพลาดเนื่องจาก "เงินเดือน" ไม่รวมอยู่ในคำสั่ง GROUP BY
  4. ดำเนินการสำเร็จและแสดงรายการจำนวนพนักงานในแต่ละประเภทที่มียอดรวมเงินเดือนมากกว่า 5,000

Answer: D. HAVING clause จะ จำกัด ผลลัพธ์ของกลุ่ม ฟังก์ชัน COUNT ใช้สำหรับการนับในขณะที่ SUM ใช้สำหรับการเพิ่มค่าตัวเลข

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

  1. ฟังก์ชันกลุ่มบนคอลัมน์ละเว้นค่า NULL
  2. ฟังก์ชันกลุ่มในคอลัมน์ที่ส่งคืนวันที่รวมค่า NULL
  3. ฟังก์ชันกลุ่มบนคอลัมน์ที่ส่งคืนตัวเลขรวมค่า NULL
  4. ไม่สามารถใช้ฟังก์ชันกลุ่มในคอลัมน์ได้อย่างถูกต้องในคอลัมน์ที่มีค่า NULL

Answer: A. ยกเว้นฟังก์ชัน COUNT ฟังก์ชันกลุ่มทั้งหมดจะไม่สนใจค่า NULL

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

  1. แบบสอบถามย่อยสามารถมีคำสั่ง GROUP BY และ ORDER BY
  2. แบบสอบถามย่อยต้องไม่มี GROUP BY และ ORDER BY clauses
  3. แบบสอบถามย่อยสามารถมีคำสั่ง ORDER BY แต่ไม่ใช่คำสั่ง GROUP BY
  4. แบบสอบถามย่อยไม่สามารถมี ORDER BY แต่สามารถมี GROUP BY clause

Answer: A. เช่นเดียวกับคำค้นหาหลักแบบสอบถามย่อยสามารถมี GROUP BY และ ORDER BY clause

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. มันดำเนินการสำเร็จ
  2. มีข้อผิดพลาดเนื่องจาก HAVING clause ไม่ถูกต้อง
  3. ทำให้เกิดข้อผิดพลาดเนื่องจากนิพจน์ GROUP BY ไม่ถูกต้อง
  4. ทำให้เกิดข้อผิดพลาดเนื่องจากฟังก์ชันการรวมไม่สามารถซ้อนกันในคำสั่ง SELECT

Answer: B. HAVING clause ไม่อนุญาตให้มีการซ้อนฟังก์ชันการรวม

45. Predict the output of the below query

SELECT avg(salary ), department_id 
FROM employees 
GROUP BY department_id ;
  1. มันทำให้เกิดข้อผิดพลาดเนื่องจากฟังก์ชันการรวมไม่สามารถปรากฏหลังจากคำสั่ง SELECT
  2. มีข้อผิดพลาดเนื่องจาก GROUP BY clause ไม่ถูกต้อง
  3. ดำเนินการโดยไม่มีข้อผิดพลาด แต่ไม่สร้างเอาต์พุต
  4. ดำเนินการสำเร็จและให้เงินเดือนเฉลี่ยในแต่ละแผนก

Answer: D. สามารถใช้ฟังก์ชันกลุ่มในลำดับใดก็ได้ (ก่อนหรือหลังจัดกลุ่มตามคอลัมน์) ในคิวรี SELECT

46. Predict the output of the below query

SELECT lower(job),avg(salary )
FROM employees 
GROUP BY upper(job);
  1. ดำเนินการสำเร็จและแสดง "งาน" เป็นตัวพิมพ์เล็ก
  2. ดำเนินการสำเร็จ แต่แสดง "job" ในกรณีดั้งเดิม
  3. มันแสดงข้อผิดพลาดเนื่องจากไม่สามารถใช้แถวเดี่ยวและฟังก์ชันรวมร่วมกันได้
  4. มันแสดงข้อผิดพลาดเนื่องจากการแปลงเคสในรายการ SELECT ไม่ตรงกับคำสั่งการแปลงเคส GROUP BY

Answer: D. ฟังก์ชัน LOWER ซึ่งเป็นฟังก์ชันแถวเดียวจะต้องระบุไว้ในคำสั่ง GROUP BY เพื่อเป็นฐานการจัดกลุ่มข้อมูลของพนักงาน

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. แบบสอบถามแรกดำเนินการกับข้อมูลพนักงานทั้งหมดในขณะที่แบบสอบถามที่สองประมวลผลข้อมูลในกลุ่มของแผนก

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. ดำเนินการสำเร็จและแสดงเงินเดือนเฉลี่ยของแผนกที่สูงกว่า 10
  2. มันแสดงข้อผิดพลาดเนื่องจากไม่สามารถใช้คอลัมน์ที่ไม่ได้รวมใน HAVING clause
  3. ดำเนินการสำเร็จ แต่แสดงผลลัพธ์ผิดสำหรับแผนก
  4. มันแสดงข้อผิดพลาดเนื่องจาก HAVING clause ต้องวางไว้ก่อน GROUP BY clause

Answer: A. สามารถใช้นิพจน์ GROUP BY ใน HAVING clause เพื่อกรองกลุ่มออกจากชุดข้อมูลสุดท้าย

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. มันแสดงข้อผิดพลาดเนื่องจากไม่สามารถกำหนดเงื่อนไขหลายข้อใน HAVING clause
  2. มันแสดงข้อผิดพลาดเนื่องจากไม่สามารถใช้คอลัมน์ที่ไม่ใช่การรวมใน HAVING clause
  3. ดำเนินการสำเร็จและแสดงเงินเดือนเฉลี่ยของแผนกที่สูงกว่า 10 และมากกว่า 2000
  4. ดำเนินการสำเร็จ แต่ไม่มีการแสดงผลลัพธ์

Answer: C. HAVING clause สามารถกำหนดเงื่อนไขหลายเงื่อนไขเข้าร่วมโดยใช้ตัวดำเนินการ AND หรือ OR กรองกลุ่ม

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

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

Answer: B, D. ฟังก์ชันกลุ่ม AVG และ SUM สามารถใช้ได้กับข้อมูลตัวเลขเท่านั้น

51. Which of the following statements are true?

  1. AVG และ SUM สามารถใช้ได้กับประเภทข้อมูลที่เป็นตัวเลขเท่านั้น
  2. STDDEV และ VARIANCE สามารถใช้ได้กับประเภทข้อมูลตัวเลขเท่านั้น
  3. MAX สามารถใช้ได้กับประเภทข้อมูล LONG
  4. ไม่สามารถใช้ MAX และ MIN กับประเภทข้อมูล LOB หรือ LONG

Answer: A, B, D. ฟังก์ชันกลุ่ม AVG, SUM, VARIANCE และ STDDEV สามารถใช้ได้กับข้อมูลตัวเลขเท่านั้น ไม่มีฟังก์ชันกลุ่มใดที่สามารถใช้กับประเภทข้อมูล 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)

ระบุข้อผิดพลาดในแบบสอบถามด้านล่าง

SELECT department_id , avg(salary ), count(hiredate)
FROM employees 
GROUP BY department_id ;
  1. ไม่สามารถใช้ฟังก์ชันการรวมหลายรายการในแบบสอบถาม SELECT เดียว
  2. GROUP BY clause ไม่ถูกต้อง
  3. ไม่สามารถใช้ฟังก์ชัน COUNT กับค่า DATE
  4. ไม่มีข้อผิดพลาดและดำเนินการสำเร็จ

Answer: D.

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

  1. MAX
  2. MIN
  3. COUNT
  4. ไม่มีสิ่งเหล่านี้

Answer: D. ไม่สามารถใช้ฟังก์ชันรวมกับชนิดข้อมูล 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)

คาดการณ์ผลลัพธ์ของคำค้นหาสองรายการด้านล่าง

Query - 1

SELECT avg(comm)
FROM employees ;

Query - 2

SELECT avg(nvl(comm,0))
FROM employees ;
  1. ทั้งสองแบบสอบถามให้ผลลัพธ์เหมือนกัน
  2. Query - 1 และ Query - 2 ให้ผลลัพธ์ที่แตกต่างกันเนื่องจาก Query-1 พิจารณาค่า NULL ของ COMM และ Query-2 แทนที่ค่า NULL ของ COMM ด้วยศูนย์
  3. แบบสอบถาม - 1 สร้างข้อผิดพลาดเนื่องจาก COMM มีค่า NULL
  4. แบบสอบถาม - 2 สร้างข้อผิดพลาดเนื่องจาก NVL ไม่สามารถซ้อนกับฟังก์ชันการรวมได้

Answer: B. ฟังก์ชัน AVG จะละเว้นค่า NULL ในขณะที่คำนวณค่าเฉลี่ยของข้อมูลตัวเลข AVG (คอลัมน์) จะคำนวณค่าเฉลี่ยสำหรับค่าที่ไม่ใช่ค่าว่างเท่านั้น อย่างไรก็ตามหากใช้ NVL เพื่อแทนที่ NULL ด้วยศูนย์ค่าทั้งหมดจะได้รับการพิจารณา

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

  1. สามารถใช้นามแฝงคอลัมน์ใน GROUP BY clause
  2. คอลัมน์ GROUP BY ต้องอยู่ในอนุประโยค SELECT
  3. GROUP BY clause ต้องปรากฏพร้อมกับ HAVING clause a SELECT query
  4. GROUP BY clause ต้องปรากฏหลัง WHERE clause ในคำสั่ง SELECT

Answer: D. ตามลำดับการประมวลผลคำสั่ง GROUP BY ต้องปรากฏหลังคำสั่ง WHERE ในแบบสอบถาม 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)

ทำนายผลลัพธ์ของแบบสอบถามด้านล่าง

SELECT department_id ,avg(salary )
FROM employees 
GROUP BY department_id , job
ORDER BY department_id ;
  1. เกิดข้อผิดพลาดเนื่องจากรายการคอลัมน์ GROUP BY ไม่ตรงกับรายการคอลัมน์ SELECT
  2. ดำเนินการสำเร็จและสร้างเงินเดือนเฉลี่ยของประเภทงานในแต่ละแผนก
  3. ดำเนินการสำเร็จและสร้างเงินเดือนโดยเฉลี่ยสำหรับแผนกในแต่ละประเภทงาน
  4. มีข้อผิดพลาดเนื่องจาก GROUP BY และ ORDER BY clause มีรายการคอลัมน์ที่แตกต่างกัน

Answer: B. แม้ว่า GROUP BY clause จะเรียงลำดับกลุ่มโดยปริยาย แต่สามารถใช้ GROUP BY และ ORDER BY clauss ร่วมกันในแบบสอบถามได้

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

  1. WHERE
  2. HAVING
  3. GROUP BY
  4. สั่งโดย

Answer: B. HAVING clause ใช้เพื่อ จำกัด กลุ่ม

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. มันดำเนินการสำเร็จ
  2. มันแสดงข้อผิดพลาดเนื่องจาก HAVING clause นำหน้า GROUP BY clause
  3. มันแสดงข้อผิดพลาดเนื่องจาก HAVING clause ใช้ฟังก์ชันการรวม
  4. มันดำเนินการ แต่ไม่มีผลลัพธ์ปรากฏขึ้นเนื่องจาก HAVING clause นำหน้า GROUP BY clause

Answer: A. HAVING clause สามารถนำหน้า GROUP BY clause ได้ แต่จะถูกประมวลผลหลังจากคำนวณผลลัพธ์ของกลุ่มแล้วเท่านั้น

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. จะส่งคืนข้อผิดพลาดเนื่องจากไม่สามารถใช้ตัวดำเนินการ BETWEEN ใน HAVING clause
  2. ส่งกลับข้อผิดพลาดเนื่องจากไม่สามารถใช้คำสั่ง WHERE และ HAVING ในคำสั่ง SELECT เดียวกันได้
  3. ส่งกลับข้อผิดพลาดเนื่องจากไม่สามารถใช้คำสั่ง WHERE และ HAVING เพื่อใช้เงื่อนไขในคอลัมน์เดียวกัน
  4. มันดำเนินการสำเร็จ

Answer: D. คำสั่ง WHERE จำกัด จำนวนแถวที่เข้าร่วมในการประมวลผลประโยคกลุ่ม

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

  1. HAVING clause สามารถใช้กับฟังก์ชันกลุ่มในเคียวรีย่อย
  2. คำสั่ง WHERE สามารถใช้เพื่อยกเว้นแถวหลังจากแบ่งออกเป็นกลุ่ม
  3. คุณสามารถใช้คำสั่ง WHERE เพื่อยกเว้นแถวก่อนที่จะแบ่งออกเป็นกลุ่ม
  4. คำสั่ง WHERE และ HAVING สามารถใช้ได้ในคำสั่งเดียวกันก็ต่อเมื่อนำไปใช้กับคอลัมน์ที่ต่างกันในตาราง

Answer: A, C. คำสั่ง WHERE และ HAVING สามารถใช้ร่วมกันในแบบสอบถามได้ WHERE ไม่รวมแถวก่อนการประมวลผลแบบกลุ่มในขณะที่ HAVING จำกัด กลุ่ม

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. มันแสดงข้อผิดพลาดเนื่องจากฟังก์ชันการรวมที่ใช้ใน HAVING clause ต้องอยู่ในรายการ SELECT
  2. มันแสดงข้อผิดพลาดเนื่องจาก HAVING clause ปรากฏก่อน GROUP BY clause
  3. จะแสดงหน่วยงานที่มีเงินเดือนเฉลี่ยมากกว่าเงินเดือนขั้นต่ำของแผนก
  4. จะแสดงหน่วยงานที่มีเงินเดือนเฉลี่ยมากกว่าเงินเดือนขั้นต่ำขององค์กร

Answer: C. สามารถใช้ฟังก์ชันกลุ่มโดย HAVING clause เพื่อกรองกลุ่ม

62. Interpret the output of the below query.

SELECT SUM(AVG(LENGTH(first_name )))
FROM employees  
GROUP BY department_id ;
  1. คำนวณผลรวมของค่าเฉลี่ยความยาวของชื่อพนักงานในแต่ละแผนก
  2. คำนวณความยาวเฉลี่ยของชื่อพนักงานในแต่ละแผนก
  3. เกิดข้อผิดพลาดเนื่องจากไม่สามารถใช้ฟังก์ชันแถวเดียวกับฟังก์ชันกลุ่มได้
  4. เกิดข้อผิดพลาดเนื่องจากไม่ได้ใช้คอลัมน์กลุ่ม DEPARTMENT_ID ในรายการ SELECT

Answer: A. ฟังก์ชันกลุ่มสามารถใช้ได้กับแถวเดียวหรือฟังก์ชันทั่วไปในแบบสอบถาม SELECT

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

  1. 1
  2. 2
  3. 3
  4. ไม่มีขีด จำกัด

Answer: B. ฟังก์ชันกลุ่มสามารถซ้อนกันได้สูงสุด 2 ระดับ อย่างไรก็ตามฟังก์ชันแถวเดียวสามารถซ้อนกันได้ในหลายระดับ

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

  1. 1
  2. 2
  3. 3
  4. ไม่มีขีด จำกัด

Answer: D. ไม่ จำกัด จำนวนกลุ่มและกลุ่มย่อยที่สามารถก่อตั้งได้

65. Choose the correct statements about the HAVING clause.

  1. HAVING clause เป็นอนุประโยคทางเลือกในคำสั่ง SELECT
  2. HAVING clause เป็นอนุประโยคบังคับถ้าคำสั่ง SELECT ใช้ GROUP BY clause
  3. HAVING clause สามารถปรากฏในคำสั่ง SELECT ก็ต่อเมื่อใช้ GROUP BY clause
  4. HAVING clause เป็นอนุประโยคบังคับถ้าคำสั่ง SELECT ใช้ GROUP BY clause

Answer: A, C. HAVING clause จะปรากฏในแบบสอบถามก็ต่อเมื่อมี GROUP BY clause แต่ในทางกลับกันไม่เป็นความจริง

66. What is the output of the below query.

SELECT count(*) FROM dual GROUP BY dummy;
  1. 1
  2. 0
  3. NULL
  4. เกิดข้อผิดพลาดเนื่องจากไม่สามารถใช้ฟังก์ชันกลุ่มบนตาราง DUAL ได้

Answer: A. ตาราง DUAL ประกอบด้วยคอลัมน์ DUMMY ประเภท CHAR (1) ที่มีค่าเป็น 'X'

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

องค์กรแห่งหนึ่งมีพนักงาน 14 คนซึ่งทำงานโดยได้รับเงินเดือนประจำที่ 1,000 บริษัท รับสมัครพนักงานใหม่ 5 คนซึ่งเงินเดือนยังไม่ได้กำหนดโดยแผนกบัญชีเงินเดือน อย่างไรก็ตามในระหว่างการประมวลผลสิ้นเดือนแผนกบัญชีเงินเดือนของฝ่ายทรัพยากรบุคคลจะสร้างรายงานหลายฉบับเพื่อกระทบยอดข้อมูลทางการเงินขององค์กร ตรวจสอบโครงสร้างตารางตามที่กำหนด

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. ฟังก์ชัน SUM จะเพิ่มเงินเดือนของพนักงาน

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. ฟังก์ชัน AVG (เงินเดือน) จะคำนวณค่าเฉลี่ยของเงินเดือนและไม่สนใจค่า NULL ในกรณีนี้ AVG (เงินเดือน) = (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 (เงินเดือน, 0)) ให้ค่าทางเลือกแก่ NULL และช่วยให้สามารถมีส่วนร่วมในการคำนวณค่าเฉลี่ย ในกรณีนี้ (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 (เงินเดือน) จะคำนวณความแปรปรวนของค่าคอลัมน์เงินเดือนโดยไม่สนใจค่า 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. ความแปรปรวน (NL (เงินเดือน, 0)) จะคำนวณความแปรปรวนของค่าคอลัมน์เงินเดือนรวมทั้งค่า 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 (เงินเดือน) จะคำนวณค่าเบี่ยงเบนมาตรฐานของค่าคอลัมน์เงินเดือนโดยไม่สนใจค่า 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 (เงินเดือน, 0)) คำนวณค่าเบี่ยงเบนมาตรฐานของค่าคอลัมน์เงินเดือนรวมทั้งค่า 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 (*) รวมค่า NULL ในขณะที่ COUNT (เงินเดือน) ละเว้นค่า 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)

คำถามใดต่อไปนี้จะให้แผนกที่มีพนักงานทำงานมากกว่า 5 คน

  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. เปิดใช้งานการดำเนินการ GROUP BY หลายคำสั่งด้วยแบบสอบถามเดียว
  2. ทำการรวมสำหรับการรวมคอลัมน์ที่เป็นไปได้ทั้งหมดที่รวมอยู่
  3. ดำเนินการเพิ่มระดับของผลรวมย่อยสะสมตามรายการคอลัมน์ที่ให้มา
  4. ไม่มีข้อใดข้างต้น

Answer: B. CUBE, ROLLUP เป็นส่วนขยาย GROUP BY ที่ใช้สำหรับการประมวลผล OLAP CUBE จะรวมผลลัพธ์เมื่อใดก็ตามที่มีการเรียงลำดับคอลัมน์ใหม่

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. WHERE clause ใช้เพื่อ จำกัด แถวก่อนที่จะสร้างกลุ่ม

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 ใช้เพื่อ จำกัด ผลลัพธ์ของกลุ่มหลังจากการประมวลผลกลุ่มสิ้นสุดลง

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. GROUP BY clause ใช้กลุ่มตามคอลัมน์เพื่อจัดกลุ่มข้อมูลในตาราง

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

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

Answer: C. เนื่องจากคำสั่ง SELECT มีคอลัมน์ CUSTOMER # จึงจำเป็นต้องมี GROUP BY clause กับคอลัมน์ CUSTOMER #

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

  1. จำนวนระเบียนในตารางที่ระบุ
  2. จำนวนคำสั่งซื้อของลูกค้าแต่ละราย
  3. จำนวนค่า NULL ในตารางที่ระบุ
  4. จำนวนลูกค้าที่สั่งซื้อ

Answer: B. นับจำนวนแถวที่ประมวลผลภายใต้กลุ่ม ในกรณีนี้กลุ่มจะถูกสร้างขึ้นโดยลูกค้าและ COUNT (*) จะนับคำสั่งซื้อของลูกค้าแต่ละราย

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 ฟังก์ชัน
  2. ฟังก์ชัน MAX
  3. ฟังก์ชัน MIN
  4. ฟังก์ชัน STDDEV

Answer: C. ฟังก์ชัน MIN ใช้เพื่อดึงค่าต่ำสุดของคอลัมน์ เมื่อใช้กับคอลัมน์วันที่จะดึงวันที่ต่ำสุดจากคอลัมน์

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. คำสั่ง GROUP BY ต้องระบุคอลัมน์หรือชุดของคอลัมน์ที่มีอยู่ในส่วนคำสั่ง SELECT ที่นี่ PUBID ไม่มีอยู่ในส่วนคำสั่ง SELECT ดังนั้นการสืบค้นจึงไม่ถูกต้อง

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

  1. ฟังก์ชันส่วนใหญ่ด้านในได้รับการแก้ไขก่อน
  2. Oracle อนุญาตให้ซ้อนฟังก์ชันกลุ่มได้ถึง 3 ระดับ
  3. ฟังก์ชันแถวเดียวสามารถซ้อนกับฟังก์ชันกลุ่มได้
  4. Oracle อนุญาตให้ซ้อนฟังก์ชันกลุ่มได้ถึง 2 ระดับ

Answer: A, C, D. ในนิพจน์ที่มีฟังก์ชันซ้อนฟังก์ชันด้านในสุดจะถูกเรียกใช้งานก่อนซึ่งผลลัพธ์จะถูกป้อนเข้าไปในฟังก์ชันถัดไปโดยเคลื่อนที่ไปในทิศทางออกไปด้านนอก ฟังก์ชันแถวเดียวสามารถใช้ได้ดีกับฟังก์ชันกลุ่มซึ่งสามารถซ้อนกันได้สูงสุด 2 ระดับ

85. What are the statistical group functions in Oracle?

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

Answer: B, C. VARIANCE และ STATS เป็นฟังก์ชันกลุ่มทางสถิติที่มีอยู่ใน Oracle SQL

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

  1. สั่งโดย
  2. HAVING
  3. GROUP BY
  4. ไม่มีสิ่งเหล่านี้

Answer: C. GROUP BY clause ควรมีคอลัมน์หรือชุดของคอลัมน์ที่อยู่ในส่วนคำสั่ง SELECT

87. Examine the table structure as given.

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

อะไรคือคำอธิบายที่ดีที่สุดว่าเหตุใดคำสั่ง SQL นี้จึงไม่ทำงาน

SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;
  1. เงินเดือนไม่สามารถหาค่าเฉลี่ยได้เนื่องจากตัวเลขทั้งหมดจะหารเท่า ๆ กัน
  2. คุณไม่สามารถใช้นามแฝงคอลัมน์ในคำสั่ง GROUP BY
  3. GROUP BY clause ต้องมีบางอย่างที่ GROUP
  4. รหัสแผนกไม่อยู่ในตารางแผนก

Answer: B. GROUP BY clause หรือ HAVING clause ไม่ทำงานกับชื่อแทนคอลัมน์

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

  1. ประเภทข้อมูลตัวเลขเท่านั้น
  2. จำนวนเต็มเท่านั้น
  3. ประเภทข้อมูลใด ๆ
  4. ทั้งหมดยกเว้นตัวเลข

Answer: A. ฟังก์ชัน AVG, SUM, VARIANCE และ STDDEV สามารถทำงานร่วมกับชนิดข้อมูลตัวเลขเท่านั้น

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. ใช้ตัวปรับเปลี่ยน DISTINCT เพื่อกรองรายการที่ซ้ำกัน

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;

เหตุใดคำสั่งนี้จึงทำให้เกิดข้อผิดพลาด

  1. HAVING clause หายไป
  2. คำสั่ง WHERE มีข้อผิดพลาดทางไวยากรณ์
  3. คอลัมน์ SALARY ไม่รวมอยู่ใน GROUP BY clause
  4. คอลัมน์ HIRE_DATE ไม่รวมอยู่ในคำสั่ง GROUP BY

Answer: D. คอลัมน์ทั้งหมดที่ปรากฏในคำสั่ง SELECT และ ORDER BY จะต้องรวมอยู่ในคำสั่ง GROUP BY

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

  1. หากต้องการยกเว้นแถวก่อนแบ่งออกเป็นกลุ่มโดยใช้ GROUP BY clause คุณควรใช้คำสั่ง WHERE
  2. คุณต้องใช้ HAVING clause กับ GROUP BY clause
  3. สามารถใช้นามแฝงคอลัมน์ใน GROUP BY clause
  4. ตามค่าเริ่มต้นแถวจะไม่เรียงลำดับเมื่อใช้คำสั่ง GROUP BY

Answer: A. การใช้คำสั่ง WHERE คุณสามารถยกเว้นแถวก่อนที่จะแบ่งออกเป็นกลุ่ม

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)

ตีความผลลัพธ์ของแบบสอบถามด้านล่าง

SELECT department_id , MIN (hiredate)
FROM employees 
GROUP by department_id ;
  1. วันที่จ้างเร็วที่สุดในองค์กร
  2. วันที่จ้างล่าสุดในองค์กร
  3. วันที่จ้างเร็วที่สุดในแผนก
  4. วันที่จ้างล่าสุดในแผนก

Answer: C. ข้อความค้นหาส่งคืนพนักงานที่ได้รับการว่าจ้างแรกสุดในแต่ละแผนก

93. Which statement about group functions is true?

  1. ฟังก์ชันกลุ่มยกเว้น COUNT (*) ละเว้นค่าว่าง
  2. แบบสอบถามที่มีฟังก์ชันกลุ่มในรายการ SELECT ต้องมีคำสั่ง GROUP BY
  3. สามารถใช้ฟังก์ชันกลุ่มในคำสั่ง WHERE
  4. ฟังก์ชันกลุ่มสามารถใช้ได้ในรายการ SELECT เท่านั้น

Answer: A. ฟังก์ชันกลุ่มทั้งหมดยกเว้น COUNT (*) ละเว้นค่า NULL เป็นเพราะพวกเขาประมวลผลค่าที่อยู่ในคอลัมน์เฉพาะโดยตรง

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

  1. GROUP BY MAX (เงินเดือน)
  2. ORDER BY AVG (เงินเดือน)
  3. มี MAX (เงินเดือน)> 10,000
  4. เลือก AVG (NVL (เงินเดือน 0))

Answer: B, C, D. ฟังก์ชันกลุ่มสามารถปรากฏในคำสั่ง SELECT, HAVING และ ORDER BY เท่านั้น

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

  1. คอลัมน์สุดท้ายที่อยู่ในคำสั่ง GROUP BY เป็นการจัดกลุ่มที่สำคัญที่สุด
  2. คอลัมน์แรกที่แสดงในคำสั่ง GROUP BY เป็นการจัดกลุ่มที่สำคัญที่สุด
  3. ไม่สามารถใช้คำสั่ง GROUP BY โดยไม่มีคำสั่ง ORDER BY
  4. GROUP BY clause ไม่รับรองการเรียงลำดับของเอาต์พุต

Answer: B. การจัดกลุ่มข้อมูลขึ้นอยู่กับลำดับของคอลัมน์ที่ปรากฏในคำสั่ง GROUP BY

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

  1. WHERE clause จำกัด แถวก่อนจัดกลุ่มในขณะที่ HAVING clause จะ จำกัด กลุ่ม
  2. WHERE clause ไม่สามารถมีฟังก์ชันกลุ่มได้ แต่ HAVING clause สามารถมีได้
  3. WHERE อนุประโยคสามารถเข้าร่วมหลายเงื่อนไขโดยใช้ตัวดำเนินการ AND หรือ OR แต่ HAVING clause ไม่สามารถทำได้
  4. WHERE clause สามารถปรากฏในคำสั่ง SELECT โดยไม่ต้อง GROUP BY clause แต่ HAVING clause ไม่สามารถ

Answer: A, B, D. WHERE อนุประโยค จำกัด แถวก่อนจัดกลุ่ม แต่ HAVING จะ จำกัด กลุ่ม

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)

ทำนายผลลัพธ์ของแบบสอบถามด้านล่าง

SELECT department_id ,job,count(*)
FROM employees 
GROUP BY department_id ,job
ORDER BY department_id ,count(*);
  1. มันดำเนินการสำเร็จ
  2. มันแสดงข้อผิดพลาดเนื่องจากคำสั่ง ORDER BY ไม่ถูกต้อง
  3. มันแสดงข้อผิดพลาดเนื่องจาก GROUP BY clause ไม่ถูกต้อง
  4. มีข้อผิดพลาดเนื่องจากไม่สามารถใช้ GROUP BY และ ORDER BY clause ร่วมกันได้

Answer: A. ORDER BY clause สามารถใช้ฟังก์ชันกลุ่มสำหรับการเรียงลำดับ