1. ภาพรวมของฟังก์ชัน MySQL COUNT
ฟังก์ชัน COUNT
ใน MySQL เป็นเครื่องมือที่สะดวกมากสำหรับการนับจำนวนเรคคอร์ดที่ตรงกับคอลัมน์หรือเงื่อนไขที่กำหนด โดยใช้ฟังก์ชันนี้ คุณสามารถนับจำนวนเรคคอร์ดในฐานข้อมูลได้อย่างง่ายดาย เช่น การนับเรคคอร์ดทั้งหมด หรือนับตามเงื่อนไขเฉพาะ
โครงสร้างพื้นฐานของฟังก์ชัน COUNT()
วิธีการใช้งานฟังก์ชัน COUNT
พื้นฐานมีดังนี้:
SELECT COUNT(*) FROM table_name;
คิวรีนี้จะนับจำนวนเรคคอร์ดทั้งหมดในตารางที่ระบุ หากต้องการนับเฉพาะจำนวนข้อมูลในคอลัมน์ใดคอลัมน์หนึ่ง สามารถเขียนได้ดังนี้:
SELECT COUNT(column_name) FROM table_name;
ในกรณีนี้ หากคอลัมน์ที่ระบุมีค่า NULL
ค่าเหล่านั้นจะถูกละเว้นและไม่นับรวม
ตัวอย่างการละเว้นค่า NULL
เช่น หากคอลัมน์ age
ที่เก็บอายุผู้ใช้มีค่า NULL
สามารถใช้คิวรีนี้เพื่อละเว้นค่า NULL
ได้:
SELECT COUNT(age) FROM users WHERE age IS NOT NULL;
คิวรีนี้จะนับเฉพาะข้อมูล age
ที่ไม่ใช่ค่า NULL
เท่านั้น

2. การใช้ COUNT ร่วมกับ DISTINCT
ในฐานข้อมูล มักจะมีค่าที่ซ้ำกันบันทึกอยู่บ่อยครั้ง กรณีเช่นนี้สามารถใช้ DISTINCT
ร่วมกับฟังก์ชัน COUNT
เพื่อให้นับจำนวนค่าที่ไม่ซ้ำกันได้ DISTINCT
จะทำการตัดค่าที่ซ้ำออกจากผลลัพธ์แล้วจึงนับจำนวน
ตัวอย่างการใช้ COUNT
และ DISTINCT
คิวรีด้านล่างนี้จะนับจำนวนชื่อที่ไม่ซ้ำกันในคอลัมน์ name
:
SELECT COUNT(DISTINCT name) FROM users;
เช่น แม้ว่าในตาราง users
จะมี “taro” หลายครั้ง ก็จะนับเพียงครั้งเดียว
3. การนับแบบมีเงื่อนไขด้วย WHERE
ฟังก์ชัน COUNT
สามารถใช้ร่วมกับคำสั่ง WHERE
เพื่อให้นับเฉพาะเรคคอร์ดที่ตรงกับเงื่อนไขได้ เหมาะอย่างยิ่งเมื่อคุณต้องการดึงข้อมูลตามเงื่อนไขเฉพาะในฐานข้อมูล
ตัวอย่างการนับแบบมีเงื่อนไข
คิวรีด้านล่างนี้จะนับจำนวนผู้ใช้ที่มีอายุตั้งแต่ 25 ปีขึ้นไป:
SELECT COUNT(*) FROM users WHERE age >= 25;
คิวรีนี้จะส่งคืนจำนวนเรคคอร์ดในคอลัมน์ age
ที่มีค่า 25 ขึ้นไป
ตัวอย่างการประยุกต์ใช้ COUNT
ยังสามารถใช้หลายเงื่อนไขร่วมกันได้ เช่น หากต้องการนับผู้ใช้ที่มีอายุตั้งแต่ 25 ปี และ gender
เป็น ‘Male’ สามารถใช้คิวรีนี้:
SELECT COUNT(*) FROM users WHERE age >= 25 AND gender = 'Male';
คิวรีนี้จะนับจำนวนเรคคอร์ดที่ตรงตามเงื่อนไขหลายอย่างพร้อมกัน

4. การจัดกลุ่มและนับด้วย GROUP BY
เมื่อใช้คำสั่ง GROUP BY
คุณสามารถจัดกลุ่มข้อมูลตามฟิลด์ที่กำหนด และนับจำนวนในแต่ละกลุ่มได้ เหมาะสำหรับการนับจำนวนพนักงานในแต่ละแผนก เป็นต้น
ตัวอย่างการใช้ GROUP BY
และ COUNT
คิวรีนี้จะนับจำนวนพนักงานในแต่ละแผนก:
SELECT department, COUNT(*) FROM employees GROUP BY department;
ผลลัพธ์ที่ได้จะแสดงจำนวนพนักงานในแต่ละแผนก โดย GROUP BY
จะจัดกลุ่มตามคอลัมน์ department
แล้วนับจำนวนเรคคอร์ดในแต่ละกลุ่ม
5. การนับแบบมีเงื่อนไขด้วย IF
ฟังก์ชัน COUNT
ยังสามารถใช้ร่วมกับ IF
เพื่อกำหนดเงื่อนไขที่ซับซ้อนได้ เช่น การนับเฉพาะข้อมูลที่ตรงตามเงื่อนไขพิเศษ
ตัวอย่างการนับด้วย IF
คิวรีด้านล่างนี้จะนับจำนวนพนักงานที่มีเงินเดือนมากกว่า 50,000:
SELECT COUNT(IF(salary > 50000, 1, NULL)) FROM employees;
คิวรีนี้จะนับเฉพาะเรคคอร์ดที่มี salary
เกิน 50,000 โดยใช้ IF
เพื่อคืนค่า 1 ถ้าตรงเงื่อนไข หรือคืนค่า NULL
ถ้าไม่ตรง
6. ตัวอย่างการใช้งานจริงของ COUNT
ฟังก์ชัน COUNT
มีประโยชน์ในงานจัดการฐานข้อมูลทั่วไป เช่น การนับจำนวนผู้ใช้ที่สมัคร หรือจำนวนการขายสินค้า
ตัวอย่างที่ 1: การนับจำนวนผู้ใช้ที่สมัคร
ผู้ดูแลเว็บไซต์สามารถใช้คิวรีนี้เพื่อตรวจสอบจำนวนผู้ใช้ที่สมัคร:
SELECT COUNT(*) FROM users;
คิวรีนี้จะนับจำนวนเรคคอร์ดทั้งหมดในตาราง users
และคืนค่าจำนวนผู้ใช้ที่สมัครปัจจุบัน
ตัวอย่างที่ 2: การนับข้อมูลการขาย
หากต้องการนับจำนวนครั้งที่สินค้าถูกขาย สามารถใช้คิวรีนี้:
SELECT COUNT(*) FROM sales WHERE product_id = 123;
คิวรีนี้จะนับจำนวนเรคคอร์ดของ product_id
ที่มีค่า 123

7. การแก้ปัญหาเมื่อใช้ COUNT
เมื่อใช้ฟังก์ชัน COUNT
อาจพบปัญหาเกี่ยวกับข้อมูล NULL
หรือข้อมูลซ้ำ ดังนั้นควรรู้วิธีแก้ไขเพื่อหลีกเลี่ยงปัญหา
ปัญหาและวิธีแก้เกี่ยวกับข้อมูล NULL
หากใช้ COUNT(column_name)
ค่า NULL
จะไม่นับรวม หากต้องการนับเรคคอร์ดทั้งหมด แนะนำให้ใช้ COUNT(*)
หรือหากต้องการนับเฉพาะค่าที่ไม่เป็น NULL
ให้เพิ่มเงื่อนไข IS NOT NULL
:
SELECT COUNT(column_name) FROM table_name WHERE column_name IS NOT NULL;