การสร้างตารางด้วย ENUM
mysql> CREATE TABLE DemoTable1829 (
Name VARCHAR(20),
isTopper ENUM('YES','NO')
);
เพิ่มข้อมูล
mysql> INSERT INTO DemoTable1829 VALUES('Chris','yes');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');
mysql> INSERT INTO DemoTable1829 VALUES('Mike','no');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');
นับจำนวน NO แยกตามชื่อ
mysql> SELECT Name, SUM(isTopper='no')
FROM DemoTable1829
GROUP BY Name;
ผลลัพธ์:
+-------+--------------------+
| Name | sum(isTopper='no') |
+-------+--------------------+
| Chris | 0 |
| David | 0 |
| Mike | 1 |
+-------+--------------------+
การทำงานของนิพจน์ Boolean
- ใน MySQL ค่า
TRUE = 1และFALSE = 0 isTopper='no'คืนค่า 1 ถ้าตรงกัน, 0 ถ้าไม่ตรงSUM()รวมค่า 1/0 ได้จำนวนที่ตรงเงื่อนไข
วิธีอื่นๆ
-- ใช้ COUNT กรณีเงื่อนไข
SELECT Name, COUNT(CASE WHEN isTopper='no' THEN 1 END)
FROM DemoTable1829 GROUP BY Name;
-- นับรวมทั้งตาราง
SELECT SUM(isTopper='no') FROM DemoTable1829;