用子查询筛选到"冰点"
从 1904 年的第一届奥运会到 2016 年,非洲国家共派出 7,845 名运动员。然而,其中只有 55 人参加了冬奥会。
非洲有四分之一的面积被撒哈拉沙漠覆盖,非沙漠地区也常年炎热。也许缺乏寒冷与降雪,限制了冬奥项目的训练机会。
在这里,您将探索气候数据,看看是否所有非洲国家都不具备冬季运动的气候条件。世界银行为各国收集了平均气温和降水量。已预加载的月度与年度 40 年平均值中,气温以摄氏度计(0 为冰点),降水量以毫米计。
请查看这些气候数据,寻找全年气温低于冰点的国家。非洲是否存在这样的国家?
本练习是课程的一部分
提升 PostgreSQL 查询性能
练习说明
- 使用
season列,将范围限定为仅参加冬奥会的运动员。 - 使用子查询,只选择
oclimate表中年平均气温(temp_annual)低于冰点(0 度)的国家。- 从
oclimate表选择国家代码olympic_cc,用于筛选athletes_recent表中的country_code。
- 从
交互式实操练习
通过完成这段示例代码来试试这个练习。
-- 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;