การใช้ อันตรภาคชั้น (Class Interval) ใน Database มักเกิดขึ้นเมื่อเราต้องการจัดการกับข้อมูลเชิงปริมาณที่มีความละเอียดสูง (เช่น อายุ, รายได้, หรือคะแนนสอบ) แล้วต้องการจัดกลุ่มเพื่อให้ง่ายต่อการทำรายงาน (Reporting) หรือการวิเคราะห์ข้อมูล (Analytics) หรือการกำหนด config หรือเกี่ยวข้องกับกฏหมาย
1 การเก็บข้อมูลดิบ แล้วจัดกลุ่มผ่าน Query
| sample id | birthday |
|---|---|
| 1 | 1959-03-18 |
| 2 | 1982-08-05 |
| 3 | 1956-06-07 |
| 4 | 1983-11-27 |
| 5 | 2011-03-15 |
วิธีนี้เป็นวิธีที่ยืดหยุ่นที่สุด โดยใน Table จะเก็บค่าจริงเอาไว้ แล้วใช้คำสั่ง SQL ในการแบ่งช่วงตอนดึงข้อมูลออกมา
- ข้อดี: ข้อมูลไม่สูญเสียความละเอียด สามารถเปลี่ยนช่วงอายุหรือเกณฑ์การแบ่งได้ตลอดเวลา
- เทคนิคที่ใช้: ใช้คำสั่ง
CASE WHEN
ตัวอย่าง
การจัดกลุ่มตาม “ความรับผิดทางอาญา”
เหมาะสำหรับการวิเคราะห์กลุ่มผู้ใช้ในเชิงการคุ้มครองเด็กและเยาวชน
SQL
SELECT
CASE
WHEN age < 12 THEN 'ไม่ต้องรับโทษอาญา (ม.73) '
WHEN age >= 12 AND age < 15 THEN 'ไม่ต้องรับโทษ (แต่ใช้มาตรการพิเศษ) '
WHEN age >= 15 AND age < 18 THEN 'รับผิดชอบเพิ่มขึ้น (ลดโทษกึ่งหนึ่ง) '
WHEN age >= 18 AND age < 20 THEN 'เยาวชนใกล้บรรลุ (ลดโทษ 1/3 หรือ กึ่งหนึ่ง) '
ELSE 'ผู้ใหญ่ (รับโทษเต็ม) '
END AS criminal_status,
COUNT (*) AS total_cases
FROM Users
GROUP BY criminal_status;