Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

आवृत्ति द्वारा SQL क्वेरी रिकॉर्ड ऑर्डर करें

मान लें कि आपको सभी चाहिए पंक्तियाँ, लेकिन कुछ कॉलम `col` . में मानों की आवृत्ति द्वारा क्रमित , आप यह कर सकते हैं:

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;

जो उत्पादन करेगा

+----+--------+
| 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. get_result () काम नहीं करता यहां तक ​​कि mysqlnd भी सक्षम है

  2. MySQL में ENUM (गणना) डेटा प्रकार:शीर्ष 12 तथ्य और उपयोगी टिप्स

  3. iPhone इमोटिकॉन्स MySQL में सम्मिलित होते हैं लेकिन रिक्त मान बन जाते हैं

  4. कोडइग्निटर क्वेरी का चयन करें

  5. MySQL का उपयोग करते हुए, मैं एक विशेष पंक्ति के क्वेरी परिणाम रैंक का चयन कैसे करूं?