MySQL การใช้งานคำสั่ง HAVING

คำสั่ง HAVING ใช้ใน SQL เพื่อกรองผลลัพธ์ที่ได้จากการจัดกลุ่ม (GROUP BY) โดยเฉพาะเมื่อเราต้องการกรองค่าที่ได้จากฟังก์ชันกลุ่ม เช่น

  • SUM()
  • AVG()
  • COUNT()
  • MAX(), MIN()

HAVING ทำหน้าที่คล้ายกับ WHERE แต่ต่างกันที่ WHERE ใช้ก่อนการจัดกลุ่ม, ส่วน HAVING ใช้หลังจากจัดกลุ่ม

รูปแบบคำสั่ง

SELECT column, AGGREGATE_FUNCTION(column)
FROM table
GROUP BY column
HAVING condition;

ตัวอย่างการใช้งาน

แสดงลูกค้าที่มียอดการชำระเงินรวมเกิน 100

SQL
SELECT customer_id, SUM(amount) AS total_paid
FROM payment
GROUP BY customer_id
HAVING total_paid > 100;
  • GROUP BY customer_id จัดกลุ่มตามรหัสลูกค้า
  • SUM(amount) รวมยอดชำระเงินของแต่ละคน
  • HAVING total_paid > 100 แสดงเฉพาะคนที่จ่ายเกิน 100

แสดงประเภทเรตติ้งหนังที่มีหนังมากกว่า 180 เรื่อง

SQL
SELECT rating, COUNT(*) AS total_movies
FROM film
GROUP BY rating
HAVING total_movies > 180;
  • แสดงเฉพาะเรตติ้งที่มีหนังจำนวนมากกว่า 180 เรื่อง
แชร์เรื่องนี้