สำรวจ Window Frame
นอกจากส่วนคำสั่ง PARTITION BY และ ORDER BY แล้ว window function ยังสามารถกำหนด frame ได้ ซึ่งบอกให้ database engine รู้ว่าควรนำแถวใดมาคำนวณภายใน window
ในส่วนนี้จะมาดู frame 4 แบบเพื่อทำความเข้าใจว่าผลลัพธ์แต่ละแบบแตกต่างกันอย่างไร โดยสำหรับแต่ละตัวอย่าง เราต้องการเติม window frame ลงในคิวรีต่อไปนี้:
SELECT
ir.IncidentDate,
ir.IncidentTypeID,
SUM(ir.NumberOfIncidents) OVER (
PARTITION BY ir.IncidentTypeID
ORDER BY ir.IncidentDate
<< WINDOW FRAME >>
) AS NumberOfIncidents
FROM dbo.IncidentRollup ir;
เราจะเลือกใช้ ROWS หรือ RANGE ขึ้นอยู่กับว่าต้องการนับแต่ละแถวหรือครอบคลุมช่วงของค่า นอกจากนี้จะระบุ "preceding" เพื่อบอกว่าต้องการนำแถวกี่แถว (หรือช่วงค่าใด) ก่อนแถวปัจจุบันมาคำนวณ และระบุ "following" เพื่อบอกว่าต้องการรวมแถวถัดจากแถวปัจจุบันด้วยหรือไม่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง
เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา
เริ่มแบบฝึกหัด