เริ่มต้นใช้งาน Correlated Subqueries
Correlated subqueries คือ subqueries ที่อ้างอิงคอลัมน์อย่างน้อยหนึ่งคอลัมน์จาก main query Correlated subqueries ต้องพึ่งข้อมูลจาก main query ในการทำงาน จึงไม่สามารถรันแยกเดี่ยวได้
ใน SQL นั้น Correlated subqueries จะถูกประมวลผลทีละแถวของข้อมูลที่ดึงมา ซึ่งใช้พลังการประมวลผลและเวลามากกว่า subquery ทั่วไปอย่างมาก
ในแบบฝึกหัดนี้ จะได้ฝึกใช้ correlated subqueries เพื่อค้นหาแมตช์ที่มีคะแนนผิดปกติเกินไปในแต่ละประเทศ นั่นคือสูงกว่าค่าเฉลี่ยถึง 3 เท่า!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
- เริ่มต้น subquery ใน
WHEREโดยคำนวณค่าเฉลี่ย (mean) ของประตูเจ้าบ้านและทีมเยือน - กำหนดการอ้างอิงคอลัมน์ใน subquery ให้ครบถ้วน โดยจับคู่
country_idระหว่างตารางmainและsub
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
main.country_id,
main.date,
main.home_goal,
main.away_goal
FROM match AS main
WHERE
-- Filter the main query by the subquery
(home_goal + away_goal) >
(SELECT AVG((___ + sub.away_goal) * 3)
FROM match AS sub
-- Join the main query to the subquery with country_id in WHERE
WHERE main.___ = sub.___);