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

Thống kê Top 10 giá trị xuất hiện nhiều nhất trong cột MySQL

Cú pháp chuẩn

SELECT cot, COUNT(*) AS dem 
FROM bang 
GROUP BY cot 
ORDER BY dem DESC 
LIMIT 10;

Ví dụ: 20 dòng dữ liệu, tìm top 10

Dữ liệu (có nhiều giá trị trùng)

+-------+
| Value |
+-------+
| 10    |
| 1100  |
| 200   |
| 2100  |
| 1100  |
| 450   |
| 600   |
| 2100  |
| 150   |
| 16454 |
| 450   |
| 2350  |
| 1780  |
| 1345  |
| 34    |
| 2100  |
| 19034 |
| 1844  |
| 34    |
| 16454 |
+-------+

Truy vấn

mysql> SELECT Value, COUNT(*) 
    -> FROM countTop10Demo 
    -> GROUP BY Value 
    -> ORDER BY COUNT(*) DESC 
    -> LIMIT 10;

Kết quả

+-------+----------+
| Value | count(*) |
+-------+----------+
| 2100  | 3        |
| 1100  | 2        |
| 34    | 2        |
| 450   | 2        |
| 16454 | 2        |
| 1780  | 1        |
| 200   | 1        |
| 1345  | 1        |
| 19034 | 1        |
| 600   | 1        |
+-------+----------+

Giải thích

  • GROUP BY Value: Gom nhóm các giá trị giống nhau
  • COUNT(*): Đếm số dòng mỗi nhóm
  • ORDER BY COUNT(*) DESC: Sắp xếp giảm dần theo tần suất
  • LIMIT 10: Lấy 10 hàng đầu

Mở rộng: Top N theo tỷ lệ %