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

MySQL में GROUP BY के साथ CASE WHEN का उपयोग करके काउंट सीमित करना

MySQL में CASE WHEN के साथ GROUP BY परिणामों में काउंट को कैप करना

CASE WHEN एक्सप्रेशन का उपयोग GROUP BY के साथ करके एग्रीगेट मानों पर सशर्त तर्क लागू किया जा सकता है, जैसे काउंट को अधिकतम मान तक सीमित करना।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    UserId INT,
    UserMessage VARCHAR(100)
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES(1, 'Hi');
mysql> INSERT INTO DemoTable VALUES(2, 'Hello');
mysql> INSERT INTO DemoTable VALUES(2, 'Good');
mysql> INSERT INTO DemoTable VALUES(1, 'Nice');
mysql> INSERT INTO DemoTable VALUES(1, 'Awesome');
mysql> INSERT INTO DemoTable VALUES(1, 'Amazing');
mysql> INSERT INTO DemoTable VALUES(1, 'Good Morning');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------+--------------+
| UserId | UserMessage  |
+--------+--------------+
| 1      | Hi           |
| 2      | Hello        |
| 2      | Good         |
| 1      | Nice         |
| 1      | Awesome      |
| 1      | Amazing      |
| 1      | Good Morning |
+--------+--------------+

काउंट को 4 पर कैप करने के लिए क्वेरी

mysql> SELECT UserId, 
CASE WHEN COUNT(*) < 4 THEN COUNT(*) ELSE 'Greater Than 4' END 
AS 'NumberOfMessage' 
FROM DemoTable GROUP BY UserId;

आउटपुट:

+--------+-----------------+
| UserId | NumberOfMessage |
+--------+-----------------+
| 1      | Greater Than 4  |
| 2      | 2               |
+--------+-----------------+

व्याख्या

  • UserId 1 के 5 संदेश हैं → "Greater Than 4" दिखाता है
  • UserId 2 के 2 संदेश हैं → वास्तविक काउंट 2 दिखाता है
  • CASE WHEN COUNT(*) < 4 THEN COUNT(*) ELSE 'Greater Than 4' END - सशर्त प्रदर्शन

वैकल्पिक: संख्यात्मक कैप

  • रिपोर्ट में अत्यधिक बड़े काउंट छिपाना
  • यूआई के लिए डेटा पूर्व-प्रसंस्करण
    1. Java JDBC में MySQL COUNT क्वेरी का रिटर्न टाइप Java JDBC में MySQL COUNT क्वेरी का रिटर्न टाइप

      COUNT क्वेरी का रिटर्न टाइप: long MySQL में COUNT(*) क्वेरी का परिणाम Java JDBC में long डेटा टाइप के रूप में प्राप्त होता है। Java कोड उदाहरण rs.next(); long result = rs.getLong(anyAliasName); पूरा Java प्रोग्राम import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet

    1. - MySQL में GROUP BY और COUNT() का उपयोग करके नामों द्वारा ग्रुप करके काउंट नए कॉलम में प्रदर्शित करना

      GROUP BY और COUNT() के साथ नामवार पंक्ति गिनती नाम के अनुसार रिकॉर्ड्स ग्रुप करके प्रत्येक नाम की घटनाओं को नए कॉलम में गिनने के लिए GROUP BY के साथ COUNT() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Name VARCHAR(30) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT

    1. - Python में MySQL का उपयोग करके COUNT() और SUM() फ़ंक्शन समझाया गया

      ये टेबल में कॉलम मानों पर अंकगणितीय संक्रियाएं करने के लिए उपयोग किए जाने वाले फ़ंक्शन हैं। COUNT() फ़ंक्शन का उपयोग उन पंक्तियों की संख्या लौटाने के लिए किया जाता है जो किसी विशेष शर्त को पूरा करती हैं। SUM() फ़ंक्शन का उपयोग टेबल में किसी कॉलम में संख्यात्मक मानों का योग लौटाने के लिए किया जाता