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

PARTITION BY ตามคอลัมน์

คำสั่ง PARTITION BY ช่วยให้คำนวณ "windows" แยกกันตามคอลัมน์ที่กำหนด ตัวอย่างเช่น สามารถสร้างคอลัมน์เดียวที่แสดงค่าเฉลี่ยประตูโดยรวมของแต่ละฤดูกาลได้

ในแบบฝึกหัดนี้ จะสร้างชุดข้อมูลเกมของ Legia Warszawa (สโมสรลีกวอร์ซอ) ทีมอันดับหนึ่งของโปแลนด์ แล้วเปรียบเทียบผลการแข่งขันรายเกมกับค่าเฉลี่ยโดยรวมของฤดูกาลนั้น

คิดว่าจะพบค่าผิดปกติ (outlier) มากกว่าในเกมเหย้าหรือเกมเยือนของ Legia Warszawa?

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

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

ดูคอร์ส

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

  • เติม window function ทั้งสองตัวที่คำนวณค่าเฉลี่ย average ประตูเจ้าบ้านและทีมเยือน โดยใช้ PARTITION BY ตามฤดูกาล เพื่อคำนวณค่าเฉลี่ยแยกในแต่ละฤดูกาล
  • Filter คิวรีให้แสดงเฉพาะนัดที่ Legia Warszawa เป็นผู้เล่น โดย id = 8673

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

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

SELECT
	date,
	season,
	home_goal,
	away_goal,
	CASE WHEN hometeam_id = 8673 THEN 'home' 
		 ELSE 'away' END AS warsaw_location,
    -- Calculate separately the average home and away goals scored, partitioned by season
    ___(___) ___(___ ___ ___) AS season_homeavg,
    ___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE 
	___ = ___ 
    OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;
แก้ไขและรันโค้ด