สร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable1975 ( StudentName varchar(20), StudentMarks int );
mysql> insert into DemoTable1975 values('John',45);
mysql> insert into DemoTable1975 values('Chris',67);
mysql> insert into DemoTable1975 values('David',59);
mysql> insert into DemoTable1975 values('Bob',NULL);
ข้อมูลในตาราง
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | John | 45 | | Chris | 67 | | David | 59 | | Bob | NULL | +-------------+--------------+
Query นับค่าที่ไม่เป็น NULL
ฟังก์ชัน COUNT(column) จะนับเฉพาะแถวที่คอลัมน์นั้นไม่เป็น NULL:
mysql> select count(StudentName)+count(StudentMarks) from DemoTable1975;
ผลลัพธ์
+----------------------------------------+ | count(StudentName)+count(StudentMarks) | +----------------------------------------+ | 7 | +----------------------------------------+
การคำนวณ
COUNT(StudentName)= 4 (ทุกแถวมีชื่อ)COUNT(StudentMarks)= 3 (แถว Bob เป็น NULL ไม่นับ)- รวม = 4 + 3 = 7
ข้อมูลเพิ่มเติม
COUNT(*)จะนับทุกแถวรวมถึง NULLCOUNT(DISTINCT column)นับค่าที่ไม่ซ้ำกันและไม่เป็น NULL- หากต้องการนับเฉพาะแถวที่ทั้งสองคอลัมน์ไม่เป็น NULL ให้ใช้
COUNT(*) WHERE StudentName IS NOT NULL AND StudentMarks IS NOT NULL