Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่าง WHERE และ HAVING Clause ใน SQL

เปรียบเทียบ WHERE Clause และ HAVING Clause ใน SQL

WHERE Clause

  • กรอง Records จาก Table ตามเงื่อนไข
  • ใช้ได้โดยไม่ต้องมี GROUP BY
  • ใช้กับ Row Operations
  • ไม่สามารถมี Aggregate Functions ได้
  • ใช้กับ SELECT, UPDATE, DELETE
  • อยู่ก่อน GROUP BY (ถ้ามี)
  • ใช้กับ Single Row Functions (UPPER, LOWER, ฯลฯ)

HAVING Clause

  • กรอง Records จาก Groups ตามเงื่อนไข
  • ต้องมี GROUP BY เสมอ
  • ทำงานกับ Column Operations (Aggregate)
  • สามารถมี Aggregate Functions ได้
  • ใช้กับ SELECT เท่านั้น
  • อยู่หลัง GROUP BY
  • ใช้กับ Multiple Row Functions (SUM, COUNT, ฯลฯ)

Syntax รวม

SELECT column1, column2 
FROM table1, table2 
WHERE [conditions] 
GROUP BY column1, column2 
HAVING [conditions] 
ORDER BY column1, column2

สรุปความแตกต่างหลัก

คุณสมบัติWHEREHAVING
ระดับการกรองRow LevelGroup Level
ต้องการ GROUP BYไม่ใช่
Aggregate Functionsไม่ได้ได้
Statements ที่รองรับSELECT, UPDATE, DELETESELECT เท่านั้น
ตำแหน่งก่อน GROUP BYหลัง GROUP BY