Window functions ทำการคำนวณข้ามชุดของแถว ("window") ที่ สัมพันธ์กับแถวปัจจุบัน โดยไม่ยุบรวมเป็นแถวผลลัพธ์เดียว (ต่างจาก aggregates ที่ใช้ GROUP BY) ฟังก์ชันเหล่านี้เปิดทางให้ทำ analytics ที่ทรงพลัง — running totals, การจัดอันดับ, การเปรียบเทียบกับแถวอื่น — ในขณะที่ยังคงแต่ละแถวไว้ในผลลัพธ์
ความแตกต่างที่สำคัญจาก GROUP BY
GROUP BY → collapses groups into ONE row each (you lose individual rows)
Window function → computes across related rows but KEEPS every row
→ You get per-row detail AND aggregate/ranking info together.
