ผลรวมสะสมเคลื่อนที่ของเหรียญรางวัลแต่ละประเทศ
ถ้าข้อมูลถูกแบ่งออกเป็นหลายกลุ่มกระจายอยู่ในคอลัมน์ตั้งแต่หนึ่งคอลัมน์ขึ้นไปในตาราง จะเกิดอะไรขึ้น? แม้จะกำหนดเฟรมไว้แล้ว หากไม่มีการแยกข้อมูลของแต่ละกลุ่มออกจากกัน ค่าของกลุ่มหนึ่งก็อาจส่งผลต่อค่าเฉลี่ยของอีกกลุ่มได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
PostgreSQL Summary Stats and Window Functions
คำแนะนำการฝึกหัด
- คำนวณผลรวมสะสมเคลื่อนที่ 3 ปีของเหรียญรางวัลที่แต่ละประเทศได้รับ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
WITH Country_Medals AS (
SELECT
Year, Country, COUNT(*) AS Medals
FROM Summer_Medals
GROUP BY Year, Country)
SELECT
Year, Country, Medals,
-- Calculate each country's 3-game moving total
___ OVER
(PARTITION BY ___
ORDER BY Year ASC
ROWS BETWEEN
___ AND ___) AS Medals_MA
FROM Country_Medals
ORDER BY Country ASC, Year ASC;