เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สำรวจ 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

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำจริง

เปลี่ยนทฤษฎีให้เป็นการลงมือทำด้วยแบบฝึกหัดเชิงโต้ตอบหนึ่งในของเรา

เริ่มแบบฝึกหัด