กรองข้อมูลเฉพาะประเทศที่มีอุณหภูมิต่ำกว่าจุดเยือกแข็งด้วย Subquery
นับตั้งแต่โอลิมปิกครั้งแรกในปี 1904 จนถึงการแข่งขันในปี 2016 ประเทศในแอฟริกาส่งนักกีฬารวมทั้งสิ้น 7,845 คน แต่มีเพียง 55 คนเท่านั้นที่เข้าร่วมแข่งขันในโอลิมปิกฤดูหนาว
หนึ่งในสี่ของแอฟริกาถูกปกคลุมด้วยทะเลทรายซาฮารา และพื้นที่ที่ไม่ใช่ทะเลทรายก็มีอากาศร้อนตลอดทั้งปี ความขาดแคลนสภาพอากาศหนาวและหิมะนี้อาจเป็นปัจจัยที่จำกัดโอกาสในการฝึกซ้อมของนักกีฬาโอลิมปิกฤดูหนาว
ในแบบฝึกหัดนี้ คุณจะสำรวจข้อมูลภูมิอากาศเพื่อดูว่าประเทศในแอฟริกา ทั้งหมด ขาดสภาพแวดล้อมที่เหมาะสมสำหรับกีฬาฤดูหนาวหรือไม่ ธนาคารโลกได้รวบรวมข้อมูลอุณหภูมิและปริมาณฝนเฉลี่ยของแต่ละประเทศ โดยค่าเฉลี่ยรายเดือนและรายปีในช่วง 40 ปี ถูกโหลดไว้ล่วงหน้าแล้ว โดยอุณหภูมิอยู่ในหน่วยองศาเซลเซียส (0 คือจุดเยือกแข็ง) และปริมาณฝนอยู่ในหน่วยมิลลิเมตร
ลองตรวจสอบข้อมูลภูมิอากาศนี้ โดยมองหาประเทศที่มีอุณหภูมิต่ำกว่าจุดเยือกแข็งตลอดทั้งปี มีประเทศในแอฟริกาที่ตรงกับเงื่อนไขนี้หรือไม่?
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
คำแนะนำการฝึกหัด
- กรองเฉพาะนักกีฬาที่เข้าร่วมโอลิมปิกฤดูหนาวเท่านั้น โดยใช้คอลัมน์
season - ใช้ subquery เพื่อเลือกเฉพาะประเทศจากตาราง
oclimateที่มีอุณหภูมิเฉลี่ยรายปี (temp_annual) ต่ำกว่าจุดเยือกแข็ง (0 องศา)- เลือกรหัสประเทศ
olympic_ccจากตารางoclimateเพื่อกรองcountry_codeในตารางathletes_recent
- เลือกรหัสประเทศ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Countries cold enough for snow year-round
SELECT country_code
, country
, COUNT (DISTINCT athlete_id) AS winter_athletes -- Athletes can compete in multiple events
FROM athletes
WHERE country_code IN (___ ___ ___ ___ WHERE temp_annual < 0)
AND ___ = 'Winter'
GROUP BY country_code, country;