ซับคิวรีมีอยู่ทุกหนทุกแห่ง
ในลีกฟุตบอล การแข่งขันจะแบ่งออกเป็นหลาย รอบ ทีมที่ชนะจะผ่านเข้าสู่รอบถัดไปเรื่อยๆ จนกว่าจะถึงรอบชิงชนะเลิศ ในแต่ละรอบ ความสำคัญของการแข่งขันจะยิ่งสูงขึ้นกว่ารอบก่อนหน้า ตาราง match มีข้อมูลเกี่ยวกับรอบต่างๆ ที่การแข่งขันแต่ละนัดเกิดขึ้น
ในอีก 3 แบบฝึกหัดถัดไป คุณจะสร้างคิวรีหนึ่งคิวรีที่มีซับคิวรีอยู่ใน clause ของ SELECT, FROM, และ WHERE ค่าเฉลี่ยจำนวนประตูที่ทำได้จะเปลี่ยนไปหรือไม่ เมื่อความสำคัญของการแข่งขันเพิ่มขึ้นจากรอบหนึ่งไปอีกรอบหนึ่ง
คิวรีนี้ใช้ซับคิวรีเดิมซ้ำ เพื่อให้ได้ฝึกวางตำแหน่งในแต่ละแบบ การคัดลอกแต่ละครั้งจะอ่านตาราง match ใหม่ทุกครั้ง ดังนั้นในงานจริงของคุณ ควรคำนวณค่าเฉลี่ยโดยรวมเพียงครั้งเดียว ตามที่แสดงในบทที่ 4 ด้วยการใช้ window function
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
- ดึงค่าเฉลี่ยจำนวนประตูรวมทั้งหมดด้วยซับคิวรีใน
SELECT - คำนวณค่าเฉลี่ยของประตูรวมสำหรับแต่ละ
stageในคิวรีหลัก - กรองทั้งซับคิวรีและคิวรีหลัก ให้รวมเฉพาะข้อมูลจากฤดูกาล 2012/2013 เท่านั้น
GROUPคิวรีตามคอลัมน์m.stage
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;