Having
WHERE ใช้สำหรับกรองแถวก่อนที่จะมีการจัดกลุ่มใดๆ เกิดขึ้น แต่เมื่อดำเนินการจัดกลุ่มแล้ว หากต้องการจำกัดจำนวนแถวที่แสดงผลเพิ่มเติม นั่นคืองานของ HAVING
ในแบบฝึกหัดนี้ จะได้ปรับแก้คิวรีที่มีอยู่ให้ใช้ HAVING เพื่อให้แสดงเฉพาะผลลัพธ์ที่มีผลรวมมากกว่า 10000 เท่านั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
SQL Server เบื้องต้น
คำแนะนำการฝึกหัด
- แก้ไขคิวรีที่กำหนดให้โดยลบ clause
WHEREออก - แทนที่ด้วย clause
HAVINGเพื่อให้แสดงเฉพาะผลลัพธ์ที่มีค่ารวมdemand_loss_mwมากกว่า10000เท่านั้น
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
nerc_region,
SUM (demand_loss_mw) AS demand_loss
FROM
grid
-- Remove the WHERE clause
WHERE demand_loss_mw IS NOT NULL
GROUP BY
nerc_region
-- Enter a new HAVING clause so that the sum of demand_loss_mw is greater than 10000
___
___(demand_loss_mw) > ___
ORDER BY
demand_loss DESC;