Devdit
 

วิธีใช้ HAVING clause ใน SQL

660

HAVING clause คือคำสั่ง SQL ที่ใช้สำหรับกรองข้อมูลจากกลุ่มที่ถูกสร้างขึ้นจาก GROUP BY clause โดย HAVING clause มักจำทำงานร่วมกับคำสั่งในกลุ่ม Aggregate Function คือ SUM, AVG, COUNT, MIN และ MAX โดยคำสั่ง HAVING จะแตกต่างจาก WHERE ตรงที่ WHERE ใช้กรองข้อมูลก่อนจัดกลุ่ม ส่วน HAVING ใช้กรองข้อมูลหลังจากจัดกลุ่มแล้ว สามารเขียน HAVING SQL ได้ดังนี้

 

ตัวอย่าง วิธีใช้ HAVING clause ใน SQL กับ SUM

SELECT id, SUM(amount)
FROM orders
GROUP BY id
HAVING SUM(amount) > 10

คำสั่งดังกล่าวจะแสดงรายการสินค้าที่มีผลรวมของ amount มากกว่า 10 จากตาราง ordres โดยการใช้คำสั่ง SUM(amount) เพื่อรวมคอลัมน์ amount และใช้ HAVING SUM(amount) > 10 เพื่อกรองข้อมูลจากกลุ่มให้แสดงเฉพาะ SUM(amount) ที่มีค่ามากกว่า 10

 

ตัวอย่าง วิธีใช้ HAVING clause ใน SQL กับ COUNT

SELECT id, name, COUNT(*)
FROM orders
GROUP BY id
HAVING COUNT(*) >= 5

คำสั่งดังกล่าวจะแสดงข้อมูลจากตาราง orders ที่มีจำนวนแถวมากกว่า หรือเท่ากับ 5 โดยการใช้คำสั่ง COUNT(*) เพื่อนับแถว และกรองข้อมูลจากกลุ่มดังกล่าวด้วย HAVING COUNT(*) >= 5 คือ แสดงเฉพาะแถวที่ COUNT(*) มีค่ามากกว่าหรือเท่ากับ 5

 

ตัวอย่าง วิธีใช้ HAVING clause ใน SQL กับ MIN

SELECT id, name, MIN(amount)
FROM orders
GROUP BY id
HAVING MIN(amount) < 2

คำสั่งดังกล่าวจะแสดงข้อมูลจากตาราง orders ที่มีค่า amount น้อยที่สุด และน้อยกว่า 2 โดยการใช้คำสั่ง MIN(amount) เพื่อเลือกเฉพาะคอลัมน์ amount ที่น้อยที่สุด จากนั้นกรองกลุ่มของข้อมูลด้วย HAVING MIN(amount) < 2 ทำให้ข้อมูลที่จะแสดงนั้นเงื่อนไขคือ MIN(amount) จะต้องน้อยกว่า 2

 

ตัวอย่าง วิธีใช้ HAVING clause ใน SQL กับ MAX

SELECT id, name, MAX(amount)
FROM orders
GROUP BY id
HAVING MAX(amount) > 10

คำสั่งดังกล่าวจะแสดงข้อมูลจากตาราง orders ที่มีค่า amount สูงสุด และมากกว่า 10 โดยการใช้คำสั่ง MAX(amount) เพื่อหาค่ามากสุดของคอลัมน์ amount จากนั้นกรองข้อมูลจากกลุ่มดังกล่าวด้วย HAVING MAX(amount) > 10 ซึ่งจะทำให้แสดงเฉพาะข้อมูลที่ MAX(amount) มีค่ามากกว่า 10

 

สรุป HAVING clause เป็นคำสั่ง SQL ที่มีประโยชน์อย่างมาก สำหรับการกรองเงื่อนไขของข้อมูลที่ได้มาจากการจัดกลุ่มของ Aggregate Function ซึ่งทำให้ได้ผลลัพธ์ตามที่ต้องการนำไปใช้งาน

แก้ไข 8 เดือนที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ