COUNT โดยใช้ CASE WHEN
จำนวนแมตช์ฟุตบอลที่จัดขึ้นในแต่ละประเทศในยุโรปแตกต่างกันไปตามฤดูกาลหรือไม่? เราจะใช้ European Soccer Database เพื่อตอบคำถามนี้
ลองตรวจสอบจำนวนแมตช์ที่จัดขึ้นใน 3 ฤดูกาล สำหรับแต่ละประเทศในฐานข้อมูล การแยกข้อมูลของแต่ละฤดูกาลออกเป็นคอลัมน์แยกกันจะช่วยให้วิเคราะห์ได้ง่ายขึ้นมาก โดยใช้ตาราง country และตาราง match ที่ไม่ได้กรองข้อมูล ให้นับจำนวนแมตช์ที่จัดขึ้นในแต่ละประเทศในฤดูกาล 2012/2013 และ 2013/2014
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน SQL
คำแนะนำการฝึกหัด
- สร้างคำสั่ง
CASE WHENเพื่อนับจำนวนแมตช์ที่จัดขึ้นในฤดูกาล'2012/2013' - สร้างคำสั่ง
CASE WHENเพื่อนับจำนวนแมตช์ที่จัดขึ้นในฤดูกาล'2013/2014'โดยตั้งชื่อ alias เป็นmatches_2013_2014
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
c.name AS country,
-- Count matches in 2012/2013
___(___ ___ m.season = '___' ___ m.id END) AS matches_2012_2013,
-- Count matches in 2013/2014
___(___ ___ m.season = '___' ___ m.id ___) ___ ___
FROM country AS c
LEFT JOIN match AS m
ON c.id = m.country_id
GROUP BY country;