October 2nd, 2008ค่าศูนย์กับค่า Null ความเหมือนที่แตกต่าง
ได้รับคำถามว่าจากทีมงานที่กำลังทำ migration รายงานชุดหนึ่งไปยัง platform ใหม่ คำถามคือ ในรายงานเดิม แสดงค่าบางค่าเป็นศูนย์ (เพราะข้อมูลใน data warehouse มีค่าเป็นศูนย์) แต่ในรายงานใหม่ จะใช้เป็นค่าว่าง (NULL) แทนได้หรือไม่? นัยว่าจะมีส่วนช่วยในการเพิ่มความเร็วในการสร้างรายงาน แถมยกตัวอย่างเป็น Excel มาให้ดูด้วยว่า เป็น zero หรือเป็น null มันก็ให้ค่า MTD (ย่อมาจาก Month-to-date) หรือค่า total เท่ากัน
ผมตอบอีเมล์โดยการเพิ่มช่อง Avg. Daily เข้าไป เพื่อชี้ให้เห็นความแตกต่างระหว่างค่าว่างกับค่าศูนย์ ซึ่งถึงแม้ว่าจะดูเผินๆ แล้วไม่แตกต่างกันมากนัก แต่ในความจริงแล้ว แตกต่างกันอย่างมีนัยสำคัญทีเดียว
ความหมายในเชิงธุรกิจของค่าทั้งสองนี้ก็แตกต่างกันด้วย
- Zero : มีค่าเท่ากับศูนย์ ถ้าเป็นยอดขาย ก็หมายความว่าขายไม่ได้เลย ถ้าเป็นจำนวนสต็อกสินค้า ก็หมายความว่า สินค้าหมดแล้ว
- Null : ว่าง “ไม่มีค่า” แตกต่างจากมีค่าเป็นศูนย์นะครับ ในส่วนของยอดขาย อาจจะหมายถึง “ไม่ได้ทำการขาย” หรือขายแต่ไม่ได้จดบันทึก ถ้าเป็นสต็อกอาจจะหมายถึง “ไม่ได้นับสินค้าตัวนี้” หรือที่เห็นกันเป็นประจำก็คือ มีข้อมูลแหละ แต่ดันบังเอิญ เจ้ากรรมข้อมูลของวันนั้นส่งมาไม่ได้ ด้วยสาเหตุอะไรก็ตามที
ค่าทั้งสองจะมีลักษณะเหมือนกัน ถ้ามองจากการรวมผลโดยวิธีบวก หรือ Sum เพียงอย่างเดียว เหมือนอย่างที่เห็นในช่อง Total และ MTD ทำให้หลายๆ คนเข้าใจผิดว่าสองค่านี้มีความหมายเดียวกัน
แต่ถ้าพิจารณาถึงการคำนวณในลักษณะอื่นๆ เช่น การหาค่าเฉลี่ย การนับจำนวนจุดข้อมูล หรือการคำนวณทางสถิติอื่นๆ ทั้งสองค่ามีความแตกต่างกัน และส่งผลให้การคำนวณแตกต่างกันด้วย