ที่ซึ่งฤดูหนาวปกคลุมด้วยหิมะขาว
แคนาดา รัสเซีย และมองโกเลียเป็นเพียง 3 ประเทศที่มีนักกีฬาโอลิมปิก และ มีอุณหภูมิเฉลี่ยรายปีต่ำกว่าจุดเยือกแข็ง อย่างไรก็ตาม หลายประเทศมีอากาศหนาวเฉพาะในช่วงฤดูหนาวเท่านั้น แม้จะมีอุณหภูมิต่ำกว่าจุดเยือกแข็งและหิมะเพียงไม่กี่เดือน แต่ก็เปิดโอกาสให้นักกีฬาฝึกซ้อมสำหรับกีฬาอย่างสกีและบ็อบสเลดได้
ด้วยแนวคิดนี้ จึงจะดูข้อมูลภูมิอากาศของประเทศที่มีนักกีฬาโอลิมปิก โดยใช้อุณหภูมิเฉลี่ยรายเดือนย้อนหลัง 40 ปี นอกจากนี้ยังสังเกตเห็นว่าแอฟริกามีการเข้าร่วมการแข่งขันโอลิมปิกฤดูหนาวค่อนข้างน้อย จึงสนใจดูข้อมูลอุณหภูมิของทุกภูมิภาคโอลิมปิกในซีกโลกใต้
เขียน query โดยใช้ common table expression (CTE) เพื่อให้โค้ดอ่านได้ง่ายขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเพิ่มประสิทธิภาพคิวรีใน PostgreSQL
คำแนะนำการฝึกหัด
- เขียน CTE ชื่อ
south_cteสำหรับซีกโลกใต้ - หาค่าเฉลี่ยอุณหภูมิและปริมาณน้ำฝนในเดือนมิถุนายนจากตาราง
oclimate - JOIN ผลลัพธ์เพื่อดูอุณหภูมิเฉลี่ยในช่วงฤดูหนาวของทุกภูมิภาค
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
___ ___ ___ -- CTE
(
SELECT region
, ROUND(AVG(temp_06),2) AS avg_winter_temp
, ROUND(AVG(precip_06),2) AS avg_winter_precip
FROM ___
WHERE region IN ('Africa','South America','Australia and Oceania')
GROUP BY region
)
SELECT south.region, south.avg_winter_temp, south.avg_winter_precip
, COUNT(DISTINCT ath.athlete_id)
FROM ___ as south
INNER JOIN athletes_recent ath
ON south.region = ath.region
AND ath.season = 'Winter'
GROUP BY south.region, south.avg_winter_temp, south.avg_winter_precip
ORDER BY south.avg_winter_temp;