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

PARTITION BY หลายคอลัมน์

คำสั่ง PARTITION BY สามารถใช้แบ่ง window average ออกตามข้อมูลหลายจุด (หลายคอลัมน์) ได้ และยังคำนวณค่าที่ต้องการใช้สำหรับการแบ่ง partition ได้โดยตรงอีกด้วย ตัวอย่างเช่น สามารถคำนวณค่าเฉลี่ยประตูที่ทำได้แยกตามฤดูกาลและประเทศ หรือแยกตามปีในปฏิทิน (ดึงมาจากคอลัมน์วันที่)

ในแบบฝึกหัดนี้ จะคำนวณค่าเฉลี่ยประตูเหย้าและเยือนของทีม Legia Warszawa และคู่แข่ง โดยแบ่ง partition ตามเดือนในแต่ละฤดูกาล

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

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

ดูคอร์ส

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

  • สร้าง window function 2 ตัว โดย partition ค่าเฉลี่ยประตูเหย้าและเยือนตามฤดูกาลและเดือน
  • กรองชุดข้อมูลโดยใช้ ID ของทีม Legia Warszawa (8673) เพื่อให้การคำนวณ window ครอบคลุมเฉพาะแมตช์ที่ทีมนี้เกี่ยวข้องเท่านั้น

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

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

SELECT 
	date,
	season,
	home_goal,
	away_goal,
	CASE WHEN hometeam_id = 8673 THEN 'home' 
         ELSE 'away' END AS warsaw_location,
	-- Calculate average goals partitioned by season and month
    ___(home_goal) ___(___ ___ ___, 
         	EXTRACT(___ FROM date)) AS season_mo_home,
    ___(away_goal) ___(___ ___ ___, 
            EXTRACT(___ FROM date)) AS season_mo_away
FROM match
WHERE 
	hometeam_id = ___
    OR awayteam_id = ___
ORDER BY (home_goal + away_goal) DESC;
แก้ไขและรันโค้ด