Znajdź trzy najwyższe wartości w każdej partycji
Pracujesz w obserwatorium meteorologicznym, a dyrektor stacji zlecił ci wskazanie trzech najwyższych miesięcznych temperatur dla każdej stacji pogodowej w roku 2017. Wiesz, że do tego celu musisz stworzyć funkcję okna, która ponumeruje wiersze.
Ponieważ szukasz najwyższych miesięcznych temperatur, zadbaj o to, aby sortowanie według kolumny t_monthly_max odbywało się w kolejności malejącej – dzięki temu najwyższe temperatury otrzymają numery jako pierwsze.
Do dyspozycji masz dwie tabele: temperatures_monthly i temperature_stations.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w PostgreSQL
Instrukcje do ćwiczenia
- Znajdź trzy najwyższe miesięczne temperatury dla każdego
station_idwraz z odpowiadającym mustate, dla roku 2017.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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, ___;