Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में कॉलम के शीर्ष 10 सबसे अधिक बार आने वाले मान गिनें

GROUP BY + COUNT + ORDER BY + LIMIT से टॉप-N आवृत्ति

कॉलम में सबसे अधिक बार आने वाले शीर्ष 10 मान और उनकी गिनती प्राप्त करने के लिए GROUP BY, COUNT(*), ORDER BY, LIMIT संयोजित करें।

सिंटैक्स

SELECT yourColumnName, COUNT(*)
FROM yourTableName
GROUP BY yourColumnName
ORDER BY COUNT(*) DESC
LIMIT 10;

उदाहरण: टेबल और डेटा (20 पंक्तियाँ)

mysql> CREATE TABLE countTop10Demo (Value INT);
mysql> INSERT INTO countTop10Demo VALUES
(10), (1100), (200), (2100), (1100), (450), (600), (2100),
(150), (16454), (450), (2350), (1780), (1345), (34), (2100),
(19034), (1844), (34), (16454);

क्वेरी और परिणाम

mysql> SELECT Value, COUNT(*)
    -> FROM countTop10Demo
    -> GROUP BY Value
    -> ORDER BY COUNT(*) DESC
    -> LIMIT 10;
+-------+----------+
| Value | COUNT(*) |
+-------+----------+
| 2100  | 3        |
| 1100  | 2        |
| 34    | 2        |
| 450   | 2        |
| 16454 | 2        |
| 1780  | 1        |
| 200   | 1        |
| 1345  | 1        |
| 19034 | 1        |
| 600   | 1        |
+-------+----------+

व्याख्या

  1. GROUP BY Value - समान मान वाली पंक्तियाँ समूहित
  2. COUNT(*) - प्रत्येक समूह की पंक्ति गिनती
  3. ORDER BY COUNT(*) DESC - गिनती के अवरोही क्रम
  4. LIMIT 10 - शीर्ष 10

टाई-हैंडलिंग

समान गिनती वाले मानों का क्रम अनिर्धारित होता है। स्थिर क्रम के लिए द्वितीयक सॉर्ट जोड़ें:

ORDER BY COUNT(*) DESC, Value ASC

प्रतिशत भी दिखाएं

SELECT Value, COUNT(*) AS cnt,
       ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM countTop10Demo), 2) AS pct
FROM countTop10Demo
GROUP BY Value
ORDER BY cnt DESC
LIMIT 10;
  1. - MySQL में टेबल कॉलम में डुप्लिकेट मानों की संख्या गिनें

    GROUP BY HAVING के साथ डुप्लिकेट गिनना किसी कॉलम में कौन से मान डुप्लिकेट हैं और उनकी कितनी बार पुनरावृत्ति हुई है, यह जानने के लिए GROUP BY के साथ 1 का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable( Data INT ); Query OK, 0 rows affected (0.98 sec) INSERT INTO DemoTable VALUES(80); Query

  1. - MySQL में कॉलम मानों को शफ़ल करना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके टेबल की पंक्तियों को यादृच्छिक क्रम में प्राप्त किया जा सकता है, जिससे प्रभावी रूप से कॉलम मान शफ़ल हो जाते हैं। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.91 sec) INSERT INTO DemoTable1557(SubjectName) VALUES(C); Query OK, 1 ro

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा