Dùng GROUP BY kết hợp HAVING COUNT(*) > 2 để lọc các nhóm có tần suất lớn hơn ngưỡng.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Subject VARCHAR(100)
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
mysql> INSERT INTO DemoTable(Subject) VALUES('Java');
mysql> INSERT INTO DemoTable(Subject) VALUES('SQL Server');
mysql> INSERT INTO DemoTable(Subject) VALUES('MongoDB');
mysql> INSERT INTO DemoTable(Subject) VALUES('MySQL');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable;
Kết quả
+----+------------+ | Id | Subject | +----+------------+ | 1 | MySQL | | 2 | MongoDB | | 3 | MySQL | | 4 | Java | | 5 | SQL Server | | 6 | MongoDB | | 7 | MySQL | +----+------------+
Lấy chủ đề xuất hiện > 2 lần:
mysql> SELECT Subject, COUNT(Subject) AS freq
-> FROM DemoTable
-> GROUP BY Subject
-> HAVING COUNT(Subject) > 2;
Kết quả
+---------+------+ | Subject | freq | +---------+------+ | MySQL | 3 | +---------+------+
Lưu ý: HAVING lọc sau khi gom nhóm, khác với WHERE lọc trước khi gom nhóm.