Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pesan catatan kueri SQL berdasarkan frekuensi

Dengan asumsi Anda menginginkan semua baris, tetapi diurutkan berdasarkan frekuensi nilai dalam beberapa kolom `col` , Anda dapat melakukan ini:

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;

yang akan menghasilkan

+----+--------+
| 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. dapatkan nilai dari database MySQL dengan PHP

  2. Transaksi MySQL:SELECT + INSERT

  3. Bagaimana cara membersihkan data yang diterima dari area teks dengan benar, saat mengeluarkannya kembali ke area teks?

  4. Bagaimana saya bisa menampilkan hasil kueri MySQL dalam format CSV?

  5. Apa arti tanda tanya di MySQL di kolom WHERE =??