การใช้งาน PARTITION BY ใน SQL Server คือหัวใจสำคัญของการทำ Data Analytics เลยครับ มันช่วยให้เราสามารถคำนวณค่าทางสถิติหรือจัดลำดับข้อมูลภายใน “กลุ่ม” ที่เราต้องการ โดยที่ยังรักษาจำนวนแถว ของผลลัพธ์ไว้เท่าเดิม ไม่เหมือนกับการใช้ GROUP BY ที่จะยุบแถวรวมกัน
PARTITION BY vs GROUP BY
เพื่อให้เห็นภาพชัดเจน ลองดูความต่างพื้นฐานดังนี้ครับ
- GROUP BY: ใช้เพื่อยุบรวมข้อมูล เช่น หาผลรวมยอดขายแยกตามรายเดือน ผลลัพธ์ที่ได้จะมีจำนวนแถวเท่ากับจำนวนกลุ่ม
- PARTITION BY: ใช้ร่วมกับ Window Functions เพื่อคำนวณข้อมูลแยกตามกลุ่ม แต่ยังแสดงรายละเอียดของทุกแถวในตารางเดิมออกมาครบถ้วน
โครงสร้างคำสั่ง
เรามักจะเห็น PARTITION BY อยู่ใน OVER () clause เสมอ
SQL
<Window_Function> (column_name) OVER