ค่าสูงสุดแบบเลื่อนของเหรียญรางวัลนักกีฬาสแกนดิเนเวีย
เฟรมช่วยให้กำหนดขอบเขตของแถวที่ส่งเป็น input ให้กับ window function ได้ โดยกำหนดช่วงเริ่มต้นและสิ้นสุดแบบ sliding window
การเพิ่มเฟรมเข้าไปใน window function ช่วยให้คำนวณค่าเมตริกแบบ "moving" ได้ ซึ่ง input จะเลื่อนไปทีละแถว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
PostgreSQL Summary Stats and Window Functions
คำแนะนำการฝึกหัด
- คืนค่าปี, จำนวนเหรียญที่ได้รับ และจำนวนเหรียญสูงสุด โดยเปรียบเทียบเฉพาะปีปัจจุบันกับปีถัดไป
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
WITH Scandinavian_Medals AS (
SELECT
Year, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
Country IN ('DEN', 'NOR', 'FIN', 'SWE', 'ISL')
AND Medal = 'Gold'
GROUP BY Year)
SELECT
-- Select each year's medals
___,
___,
-- Get the max of the current and next years' medals
___ OVER (ORDER BY ___ ASC
ROWS BETWEEN ___
AND ___) AS Max_Medals
FROM Scandinavian_Medals
ORDER BY Year ASC;