OVER ที่นี่คืออะไร?
Window functions ช่วยให้สามารถจัดอันดับ (RANK) ข้อมูลตามตัวแปรที่ต้องการได้ โดยต้องระบุคอลัมน์หรือการคำนวณที่ใช้เป็นเกณฑ์การจัดอันดับ ซึ่งทำได้โดยเพิ่ม ORDER BY ไว้ภายใน OVER() ดูตัวอย่างด้านล่าง:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
ในแบบฝึกหัดนี้ จะสร้างชุดข้อมูลที่จัดอันดับแมตช์ตามลีกที่มีค่าเฉลี่ยประตูต่อเกมสูงที่สุด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
SELECTชื่อลีกและค่าเฉลี่ยประตูรวมจากตารางleagueและmatch- เติม window function ให้คำนวณ
RANK()ของค่าเฉลี่ยประตูที่ทำได้ในทุกลีกของฐานข้อมูล - กำหนดลำดับการจัดอันดับ
OVERค่าเฉลี่ยรวมของประตูเจ้าบ้านและทีมเยือน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league over the average goals
___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;