เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ค้นหา 3 ค่าสูงสุดในแต่ละ Partition

คุณทำงานให้กับหน่วยงานอุตุนิยมวิทยา และผู้อำนวยการสถานีได้มอบหมายให้คุณระบุอุณหภูมิรายเดือนที่สูงที่สุด 3 อันดับแรกของแต่ละสถานีตรวจวัดอากาศในปี 2017 เพื่อให้ได้ผลลัพธ์นี้ จำเป็นต้องสร้าง window function สำหรับกำหนดหมายเลขแถว

เนื่องจากต้องการค้นหาอุณหภูมิรายเดือนที่สูงที่สุด ให้เรียงลำดับตาม t_monthly_max จากมากไปน้อย เพื่อให้อุณหภูมิที่สูงที่สุดได้รับหมายเลขก่อน

มีตารางสองตารางให้ใช้งาน ได้แก่ temperatures_monthly และ temperature_stations

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์อนุกรมเวลาใน PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ค้นหาอุณหภูมิรายเดือนที่สูงที่สุด 3 อันดับแรกของแต่ละ station_id และ state ที่เกี่ยวข้อง สำหรับปี 2017

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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, ___;
แก้ไขและรันโค้ด