Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sắp xếp các bản ghi truy vấn SQL theo tần suất

Giả sử bạn muốn tất cả hàng, nhưng được sắp xếp theo tần suất của giá trị trong một số cột `col` , bạn có thể làm điều này:

CREATE TABLE tbl (id SERIAL, col VARCHAR(16));
-- INSERT so that `id` does not match frequency of values under `col`
INSERT INTO tbl (col) VALUES ('value1'), ('value2'), ('value3'),
                             ('value1'), ('value2'), ('value3'),
                             ('value1'), ('value2'),
                             ('value1'),
                             ('value1');

    SELECT id, tbl.col
      FROM tbl
INNER JOIN (  SELECT col, COUNT(1) AS freq
                FROM tbl
            GROUP BY 1) derived
           USING (col)
  ORDER BY derived.freq DESC;

cái nào sẽ tạo ra

+----+--------+
| id | col    |
+----+--------+
|  4 | value1 |  <-- highest incidence
|  7 | value1 |
|  1 | value1 |
|  9 | value1 |
| 10 | value1 |
|  5 | value2 |
|  8 | value2 |
|  2 | value2 |
|  6 | value3 |  <-- lowest incidence
|  3 | value3 |
+----+--------+
10 rows in set (0.00 sec)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. thêm 1 ngày vào giá trị định dạng DATETIME

  2. Người dùng MySQL cần có quyền nào để tạo cơ sở dữ liệu?

  3. InnoDB (MySQL 5.5.8) có phải là lựa chọn phù hợp cho nhiều tỷ hàng không?

  4. Chuyển người dùng từ tên người dùng sang user_group

  5. MySQL cấp đặc quyền cho người dùng cho cơ sở dữ liệu