ข้อใดอธิบายความแตกต่างระหว่าง WHERE และ HAVING ในภาษา SQL ได้ถูกต้องที่สุด

WHERE ใช้ได้เฉพาะกับคำสั่ง SELECT ส่วน HAVING ใช้ได้กับทุกคำสั่ง เช่น INSERT, UPDATE และ DELETE
WHERE ใช้กรองข้อมูลหลังการจัดกลุ่ม (GROUP BY) ส่วน HAVING ใช้กรองข้อมูลก่อนการจัดกลุ่ม
WHERE และ HAVING ทำงานเหมือนกันทุกประการ แต่ HAVING ใช้ได้เฉพาะกับตารางที่มี Primary Key เท่านั้น
WHERE ใช้กรองข้อมูลก่อนการจัดกลุ่ม (GROUP BY) ส่วน HAVING ใช้กรองข้อมูลหลังการจัดกลุ่มแล้ว

เฉลยอธิบาย

WHERE ใช้กรองแถวข้อมูลก่อนที่จะมีการจัดกลุ่มด้วย GROUP BY จึงไม่สามารถใช้ฟังก์ชันรวม (Aggregate Function) เช่น SUM, COUNT ได้ใน WHERE ได้โดยตรง ส่วน HAVING ใช้กรองผลลัพธ์หลังจากการจัดกลุ่มเสร็จแล้ว จึงสามารถระบุเงื่อนไขโดยใช้ฟังก์ชันรวมได้ เช่น HAVING COUNT(*) > 5

ข้อสอบอื่นในวิชาการใช้ภาษา SQL

ดูข้อสอบวิชานี้ทั้งหมด →