Kỹ thuật
Sử dụng COUNT() kết hợp CASE WHEN để đếm điều kiện và hiển thị mỗi điều kiện trên một cột.
1. Tạo bảng
mysql> create table DemoTable (
Score int
);
Query OK, 0 rows affected (0.71 sec)
2. Chèn dữ liệu
mysql> insert into DemoTable values(40),(48),(59),(33),(38),(89),(35);
3. Xem dữ liệu
mysql> select * from DemoTable;
+-------+ | Score | +-------+ | 40 | | 48 | | 59 | | 33 | | 38 | | 89 | | 35 | +-------+ 7 rows in set (0.00 sec)
4. Truy vấn đếm hai nhóm
mysql> select
count(case when Score > 45 then 1 end) as CountOfValueGreaterThan45,
count(case when Score <= 45 then 1 end) as CountOfValueLessThanOrEqualTo45
from DemoTable;
Kết quả:
+---------------------------+---------------------------------+ | CountOfValueGreaterThan45 | CountOfValueLessThanOrEqualTo45 | +---------------------------+---------------------------------+ | 3 | 4 | +---------------------------+---------------------------------+ 1 row in set (0.00 sec)
Giải thích: CASE WHEN ... THEN 1 END trả về 1 khi thỏa mãn, NULL khi không. COUNT() chỉ đếm giá trị không NULL.