Nhiệt độ trung bình lũy kế và trung bình trượt theo năm
Là một nhà khoa học dữ liệu tại trung tâm nghiên cứu khí tượng, bạn muốn lấy giá trị trung bình theo thời gian (được làm mượt) của nhiệt độ hằng năm ở từng bang khi nhiệt độ của mỗi bang thay đổi qua các năm. Sau đó, so sánh nhiệt độ trung bình của năm hiện tại với trung bình trượt của nhiệt độ hằng năm trong năm năm trước đó.
Một common table expression cho ra nhiệt độ trung bình hằng năm được tính từ nhiệt độ trung bình theo tháng cho mỗi bang. Vì mỗi bang chỉ có một trạm thời tiết, nhóm theo bang tương đương với nhóm theo trạm.
Bài tập này là một phần của khóa học
Phân tích chuỗi thời gian trong PostgreSQL
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.
-- Running average of the yearly avg temperature
WITH yearly AS(
SELECT
state,
DATE_PART('year', year_month)::INTEGER AS year,
AVG(t_monthly_avg) AS yearly_avg
FROM temperatures_monthly JOIN temperature_stations USING(station_id)
WHERE t_monthly_avg > -9999
GROUP BY state, year
)
SELECT
state,
year,
yearly_avg,
___ OVER (
___
___
ROWS BETWEEN ___)
AS running_yearly_avg
FROM yearly
ORDER BY state, year;