ข้อใดอธิบายความแตกต่างระหว่าง WHERE และ HAVING ในภาษา SQL ได้ถูกต้องที่สุด
กWHERE ใช้ได้เฉพาะกับคำสั่ง SELECT ส่วน HAVING ใช้ได้กับทุกคำสั่ง เช่น INSERT, UPDATE และ DELETE
ขWHERE ใช้กรองเฉพาะค่าจาก aggregate หลัง GROUP BY ส่วน HAVING ใช้กรองแถวต้นทางก่อนจัดกลุ่ม
คWHERE และ HAVING ทำงานเหมือนกันทุกประการ แต่ HAVING ใช้ได้เฉพาะกับตารางที่มี Primary Key เท่านั้น
งWHERE ใช้กรองข้อมูลก่อนการจัดกลุ่ม (GROUP BY) ส่วน HAVING ใช้กรองข้อมูลหลังการจัดกลุ่มแล้ว
เฉลยอธิบาย
WHERE ใช้กรองแถวข้อมูลก่อนที่จะมีการจัดกลุ่มด้วย GROUP BY จึงไม่สามารถใช้ฟังก์ชันรวม (Aggregate Function) เช่น SUM, COUNT ได้ใน WHERE ได้โดยตรง ส่วน HAVING ใช้กรองผลลัพธ์หลังจากการจัดกลุ่มเสร็จแล้ว จึงสามารถระบุเงื่อนไขโดยใช้ฟังก์ชันรวมได้ เช่น HAVING COUNT(*) > 5