การคำนวณผลรวมสะสมและค่าเฉลี่ยเคลื่อนที่

การวิเคราะห์อนุกรมเวลาใน SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

การคำนวณผลรวมสะสม

Team Game RunsScored
AZ 1 8
AZ 2 6
AZ 3 3
FLA 1 7
FLA 2 7
FLA 3 6
Team Game RunsScored TotalRuns
AZ 1 8 8
AZ 2 6 14
AZ 3 3 17
FLA 1 7 7
FLA 2 7 14
FLA 3 6 20
การวิเคราะห์อนุกรมเวลาใน SQL Server

ผลรวมสะสม

SELECT
    s.Team,
    s.Game,
    s.RunsScored,
    SUM(s.RunsScored) OVER (
        PARTITION BY s.Team
        ORDER BY s.Game ASC
        RANGE BETWEEN
              UNBOUNDED PRECEDING
              AND CURRENT ROW
    ) AS TotalRuns
FROM #Scores s;
  • คอลัมน์ Team, Game, RunsScored
  • SUM(s.RunsScored)
  • OVER()
  • PARTITION BY s.Team
  • ORDER BY s.Game ASC
  • RANGE BETWEEN
  • UNBOUNDED PRECEDING
  • AND CURRENT ROW
การวิเคราะห์อนุกรมเวลาใน SQL Server

RANGE และ ROWS

RANGE

  • ระบุช่วงของผลลัพธ์
  • ประมวลผล "ค่าซ้ำ" พร้อมกันทั้งหมด
  • รองรับเฉพาะ UNBOUNDED และ CURRENT ROW

ROWS

  • ระบุจำนวนแถวที่ต้องการรวม
  • ประมวลผล "ค่าซ้ำ" ทีละแถว
  • รองรับ UNBOUNDED, CURRENT ROW และจำนวนแถว
การวิเคราะห์อนุกรมเวลาใน SQL Server

การคำนวณค่าเฉลี่ยเคลื่อนที่

SELECT
    s.Team,
    s.Game,
    s.RunsScored,
    AVG(s.RunsScored) OVER (
        PARTITION BY s.Team
        ORDER BY s.Game ASC
        ROWS BETWEEN 1 PRECEDING
            AND CURRENT ROW
    ) AS AvgRuns
FROM #Scores s;
Team Game RunsScored AvgRuns
AZ 1 8 8
AZ 2 6 7
AZ 3 3 4
FLA 1 7 7
FLA 2 7 7
FLA 3 6 6
การวิเคราะห์อนุกรมเวลาใน SQL Server

มาฝึกกันเถอะ!

การวิเคราะห์อนุกรมเวลาใน SQL Server

Preparing Video For Download...