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

การกรองข้อมูลด้วย scalar subquery

Subquery มีประสิทธิภาพมากในการกรองและแปลงข้อมูลที่ซับซ้อน สามารถใช้กรองข้อมูลตามค่าเดี่ยว (scalar) ได้ในแบบที่คำสั่ง WHERE หรือการ join ทำไม่ได้ นอกจากนี้ยังนำมาใช้จัดการชุดข้อมูลในรูปแบบขั้นสูงได้อีกด้วย ในสภาพแวดล้อมการทำงานจริงที่ใช้ฐานข้อมูลเชิงสัมพันธ์ มักพบ subquery อยู่เสมอ

ในแบบฝึกหัดนี้ จะสร้างรายการแมตช์ที่มีจำนวนประตูรวม (ของทั้งสองทีม) มากกว่า 3 เท่า ของค่าเฉลี่ยในตาราง matches_2013_2014 ซึ่งครอบคลุมเกมทั้งหมดในฤดูกาล 2013/2014

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

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

ดูคอร์ส

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

  • คำนวณค่า 3 เท่าของค่าเฉลี่ย ประตูเหย้า + ประตูเยือน จากทุกแมตช์ใน subquery
  • กรองคิวรีหลักเพื่อเลือกเฉพาะแมตช์ที่มีจำนวนประตูรวม (ประตูเหย้า + ประตูเยือน) มากกว่าค่าที่ได้จาก subquery

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

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

SELECT 
    date,
	home_goal,
	away_goal
FROM matches_2013_2014
-- Filter for matches where total goals is greater than 3x the average
WHERE (___ + ___) ___ 
       (SELECT ___ * AVG(___ + ___)
        FROM ___); 
แก้ไขและรันโค้ด