Tính tổng luỹ kế và trung bình trượt

Phân tích chuỗi thời gian trong SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Tính tổng luỹ kế

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
Phân tích chuỗi thời gian trong SQL Server

Tổng luỹ kế

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;
  • Cột Team, Game, RunsScored
  • SUM(s.RunsScored)
  • OVER()
  • PARTITION BY s.Team
  • ORDER BY s.Game ASC
  • RANGE BETWEEN
  • UNBOUNDED PRECEDING
  • AND CURRENT ROW
Phân tích chuỗi thời gian trong SQL Server

RANGE và ROWS

RANGE

  • Chỉ định một phạm vi kết quả
  • Bản ghi trùng xử lý cùng lúc
  • Chỉ hỗ trợ UNBOUNDEDCURRENT ROW

ROWS

  • Chỉ định số hàng cần lấy
  • Bản ghi trùng xử lý từng hàng
  • Hỗ trợ UNBOUNDED, CURRENT ROW, và số hàng
Phân tích chuỗi thời gian trong SQL Server

Tính trung bình trượt

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
Phân tích chuỗi thời gian trong SQL Server

Ayo berlatih!

Phân tích chuỗi thời gian trong SQL Server

Preparing Video For Download...