开始使用免费开始使用

在每个分区中找出 3 个最高值

您在一家气象观测站工作。站长要求您找出 2017 年每个气象站的月最高气温中排名前三的值。您知道要实现这一点,需要创建一个窗口函数来为行编号。

由于要寻找月最高气温,您需要按 t_monthly_max 降序排序,这样最高的温度会被优先编号。

您可以使用两张表:temperatures_monthlytemperature_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, ___;
编辑并运行代码