Khi làm việc với cột kiểu ENUM trong MySQL, bạn thường cần thống kê số lần xuất hiện của từng giá trị liệt kê. Cách đơn giản nhất là kết hợp mệnh đề GROUP BY với hàm tổng hợp COUNT().
Tạo bảng và chèn dữ liệu mẫu
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Size ENUM('S', 'M', 'L', 'XL')
);
mysql> INSERT INTO DemoTable (Size) VALUES
('L'), ('S'), ('S'), ('M'), ('XL'),
('M'), ('M'), ('M'), ('XL');
Xem dữ liệu trong bảng
mysql> SELECT * FROM DemoTable;
+----+------+
| Id | Size |
+----+------+
| 1 | L |
| 2 | S |
| 3 | S |
| 4 | M |
| 5 | XL |
| 6 | M |
| 7 | M |
| 8 | M |
| 9 | XL |
+----+------+
Truy vấn đếm số lượng theo từng size
mysql> SELECT tbl.Size, COUNT(1) AS Frequency
FROM DemoTable tbl
GROUP BY tbl.Size;
Kết quả
+------+-----------+
| Size | Frequency |
+------+-----------+
| L | 1 |
| S | 2 |
| M | 4 |
| XL | 2 |
+------+-----------+
Giải thích: Mệnh đề GROUP BY Size gom nhóm các hàng có cùng giá trị Size, và COUNT(1) (hoặc COUNT(*)) đếm số hàng trong mỗi nhóm. Cách này hoạt động hiệu quả với cả cột ENUM lẫn các kiểu dữ liệu khác.