Để thực hiện việc này, bạn có thể sử dụng câu lệnh CASE kết hợp với hàm SUM(). Ở đây, chúng ta sẽ đếm số lượng bản ghi "Male" và "Female" từ một cột chứa giới tính nhân viên. Trước tiên, hãy tạo một bảng:
mysql> CREATE TABLE DemoTable (
EmployeeGender ENUM('Male','Female')
); Query OK, 0 rows affected (0.52 sec)
Chèn một số bản ghi:
mysql> INSERT INTO DemoTable VALUES('Male'); Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('Female'); Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('Male'); Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('Female'); Query OK, 1 row affected (0.08 sec)
mysql> INSERT INTO DemoTable VALUES('Male'); Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable VALUES('Female'); Query OK, 1 row affected (0.08 sec)
Hiển thị tất cả bản ghi:
mysql> SELECT * FROM DemoTable;
Kết quả:
+----------------+ | EmployeeGender | +----------------+ | Male | | Female | | Male | | Female | | Male | | Female | +----------------+ 6 rows in set (0.00 sec)
Truy vấn để đếm hai giá trị trong một câu lệnh:
mysql> SELECT
SUM(CASE WHEN EmployeeGender='Male' THEN 1 ELSE 0 END) AS Total_Male,
SUM(CASE WHEN EmployeeGender='Female' THEN 1 ELSE 0 END) AS Total_Female
FROM DemoTable;
Kết quả:
+------------+--------------+ | Total_Male | Total_Female | +------------+--------------+ | 3 | 3 | +------------+--------------+ 1 row in set (0.00 sec)