จัดระเบียบด้วย CTE
ก่อนหน้านี้ คุณได้ปรับแต่งคิวรีจากแบบฝึกหัดในบทที่ 2 โดยใช้ common table expressions
คราวนี้ มาต่อยอดแบบฝึกหัดนั้นด้วยการดูรายละเอียดของแมตช์ที่มีสกอร์สูงมาก โดยใช้ CTE เช่นเดียวกับ subquery ใน FROM คุณสามารถ join ตารางต่าง ๆ ภายใน CTE ได้เช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
- ประกาศ CTE โดยสร้างรายการแมตช์ทั้งหมดพร้อม
nameของลีก - เลือก
league,date,homeและawaygoals จาก CTE - กรอง คิวรีหลักให้แสดงเฉพาะแมตช์ที่มีประตูรวม 10 ประตูขึ้นไป
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Set up your CTE
___ match_list ___ (
-- Select the league name, date, home, and away goals
SELECT
___ AS league,
___,
___,
m.away_goal,
(m.home_goal + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN league as l ON m.country_id = l.id)
-- Select the league, date, home, and away goals from the CTE
SELECT ___, date, ___, away_goal
FROM ___
-- Filter by total goals
WHERE total_goals ___;