เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแข่งขัน OVER แล้ว

clause OVER() ช่วยให้สามารถนำฟังก์ชัน aggregate ไปใช้กับชุดข้อมูลทั้งหมดได้ คล้ายกับการใช้ subquery ใน SELECT แต่มีข้อดีกว่าตรงที่คิวรีจะทำงานได้เร็วขึ้น และ OVER() ยังมีฟังก์ชันและ clause เพิ่มเติมอีกมากที่จะได้เรียนรู้ในบทนี้

ในแบบฝึกหัดนี้ จะนำคิวรีจากบทก่อนหน้ามาปรับใหม่โดยใช้ clause OVER()

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจัดการข้อมูลใน SQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เลือก ID ของแมตช์, name ของประเทศ, season, home_goal และ away_goal จากตาราง match และ country
  • เติมคิวรีให้สมบูรณ์เพื่อคำนวณจำนวนประตูเฉลี่ยโดยรวม แล้วแสดงค่าaggregateนั้นในทุกแถวโดยใช้ฟังก์ชันwindow

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT 
	-- Select the match id, country name, season, home, and away goals
	___, 
    c.___ AS country, 
    m.season,
	___.home_goal,
	___,
    -- Use a window to include the aggregate average in each row
	___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;
แก้ไขและรันโค้ด