在每个分区中找出 3 个最高值
您在一家气象观测站工作。站长要求您找出 2017 年每个气象站的月最高气温中排名前三的值。您知道要实现这一点,需要创建一个窗口函数来为行编号。
由于要寻找月最高气温,您需要按 t_monthly_max 降序排序,这样最高的温度会被优先编号。
您可以使用两张表:temperatures_monthly 和 temperature_stations。
本练习是课程的一部分
PostgreSQL 中的时间序列分析
练习说明
- 找出 2017 年每个
station_id及其对应state的 3 个最高月度气温。
交互式实操练习
通过完成这段示例代码来试试这个练习。
-- Three highest monthly temps per station for 2017
SELECT * FROM
( SELECT
ts.station_id,
ts.state,
tm.year_month,
tm.t_monthly_max,
___ AS rank
FROM temperatures_monthly AS tm
JOIN temperature_stations AS ts USING(station_id)
WHERE ___
) AS temp_2017
WHERE ___
ORDER BY station_id, ___;