Window Function สำหรับค่าสูงสุด
ทีมงานภาคสนามในรัฐไอดาโฮได้รายงานข้อมูลตัวอย่างจากระบบตรวจสอบคุณภาพน้ำในหลายมิติ พวกเขาต้องการเปรียบเทียบค่าตัวอย่าง Alkalinity กับค่าสูงสุดของแต่ละปี เพื่อวิเคราะห์แนวโน้มที่เข้าใกล้ค่าสูงสุด ข้อมูลมีความไม่เป็นระเบียบอยู่บ้าง จึงต้องแปลงประเภทข้อมูลวันที่อย่างชัดเจน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Redshift
คำแนะนำการฝึกหัด
- แปลง
sample_dateให้เป็นชนิด date อย่างชัดเจน โดยตั้งชื่อแทนว่าdate_sampledและเรียงลำดับตามคอลัมน์นี้ - ใช้ window function เพื่อคำนวณค่า Alkalinity สูงสุด จากคอลัมน์
characteristic_measurementvalueโดยแบ่งกลุ่มตามปี
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT fk_monitoringlocation,
-- Explicitly convert sample_date to a DATE
___(sample_date AS ___) as date_sampled,
characteristic_measurementvalue,
-- Find the max measurement
___(___) ___ (
-- For each year window based on the sample date
___ BY DATE_PART(___, ___(___ AS DATE))
) as yearly_max
FROM public_intro_redshift.idaho_samples
WHERE characteristic_name = 'Alkalinity'
ORDER BY date_sampled DESC,
fk_monitoringlocation;