Nơi mùa đông phủ trắng
Canada, Nga và Mông Cổ là những quốc gia duy nhất vừa có vận động viên Olympic và nhiệt độ trung bình năm dưới 0°C. Phổ biến hơn, nhiều quốc gia chỉ lạnh vào các tháng mùa đông. Ngay cả những nước chỉ có vài tháng băng giá và tuyết vẫn tạo điều kiện cho vận động viên luyện tập các môn như trượt tuyết hay đua xe trượt băng.
Với điều này, bạn sẽ xem dữ liệu khí hậu của các quốc gia có vận động viên Olympic dựa trên nhiệt độ trung bình theo tháng trong 40 năm. Bạn đặc biệt tò mò về tỷ lệ tham gia Thế vận hội Mùa đông thấp ở châu Phi và quyết định xem nhiệt độ cho tất cả khu vực Olympic ở bán cầu nam.
Viết truy vấn được tối ưu cho khả năng đọc bằng cách sử dụng common table expression (CTE).
Bài tập này là một phần của khóa học
Cải thiện hiệu năng truy vấn trong PostgreSQL
Hướng dẫn bài tập
- Viết một CTE,
south_cte, cho bán cầu nam. - Tìm nhiệt độ và lượng mưa trung bình của tháng 6 từ bảng
oclimate. - JOIN kết quả để xem nhiệt độ trung bình tháng mùa đông cho tất cả các khu vực.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
___ ___ ___ -- 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;