Tạo bảng điểm
mysql> CREATE TABLE DemoTable1374 (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(20),
-> Score INT
-> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable1374(Name, Score) VALUES
-> ('Chris',45),('David',78),('Bob',45),('Mike',75),('Carol',45),('Adam',89);
Dữ liệu
mysql> SELECT * FROM DemoTable1374;
+----+-------+-------+
| Id | Name | Score |
+----+-------+-------+
| 1 | Chris | 45 |
| 2 | David | 78 |
| 3 | Bob | 45 |
| 4 | Mike | 75 |
| 5 | Carol | 45 |
| 6 | Adam | 89 |
+----+-------+-------+
Đếm số hàng có Score = 45
mysql> SELECT COUNT(CASE WHEN Score = 45 THEN 1 ELSE NULL END)
-> AS SpecificCondition
-> FROM DemoTable1374;
Kết quả: 3
+-------------------+
| SpecificCondition |
+-------------------+
| 3 |
+-------------------+
Giải thích: COUNT(expr) chỉ đếm các hàng expr không phải NULL. CASE WHEN ... THEN 1 ELSE NULL END trả về 1 khi thỏa mãn, NULL khi không, do đó COUNT chỉ tính các hàng khớp. Tương đương SUM(Score = 45) trong MySQL (true = 1, false = 0).