Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đếm số lần xuất hiện giá trị trong MySQL (COUNT với GROUP BY)

Hàm tổng hợp COUNT() kết hợp GROUP BY để đếm tần suất

Đếm số lần mỗi giá trị xuất hiện trong một cột.

Cú pháp

SELECT cot, COUNT(*) AS soLanXuatHien
FROM tenBang
GROUP BY cot;

Ví dụ: Đếm hãng xe

Bảng CountOccurrences:

CREATE TABLE CountOccurrences (
    CarId INT NOT NULL AUTO_INCREMENT,
    CarName VARCHAR(30),
    PRIMARY KEY (CarId)
);
INSERT INTO CountOccurrences (CarName) VALUES
('Aston Martin'), ('BMW'), ('Aston Martin'), ('Honda'),
('BMW'), ('Audi'), ('Aston Martin'), ('Bugatti'),
('BMW'), ('Honda'), ('Audi'), ('BMW');

Truy vấn đếm:

SELECT CarName, COUNT(*) AS TotalCount
FROM CountOccurrences
GROUP BY CarName;

Kết quả

+--------------+------------+
| CarName      | TotalCount |
+--------------+------------+
| Aston Martin |          3 |
| BMW          |          4 |
| Honda        |          2 |
| Audi         |          2 |
| Bugatti      |          1 |
+--------------+------------+

Mở rộng

  • Sắp xếp theo tần suất: ORDER BY TotalCount DESC.
  • Lọc tần suất: HAVING COUNT(*) > 1 (chỉ giá trị trùng lặp).
  • Đếm distinct: COUNT(DISTINCT cot) đếm số giá trị duy nhất.
  • Đếm nhiều cột: GROUP BY cot1, cot2 đếm tổ hợp.

Hiệu năng

  • Index trên cột GROUP BY tăng tốc đáng kể.
  • Với bảng lớn, cân nhắc summary table / materialized view cập nhật định kỳ.