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

MySQL SELECT क्वेरी में GROUP BY क्लॉज के बिना ग्रुप फंक्शन को नॉन-ग्रुप फील्ड के साथ क्यों नहीं उपयोग करना चाहिए?


ऐसा इसलिए है क्योंकि GROUP BY क्लॉज के बिना MySQL द्वारा लौटाया गया आउटपुट भ्रामक हो सकता है। हम इसे प्रदर्शित करने के लिए नीचे दिए गए 'Student' टेबल पर उदाहरण दे रहे हैं:

mysql> Select * from Student; 
+------+---------+---------+-----------+ 
| Id   | Name    | Address | Subject   | 
+------+---------+---------+-----------+ 
| 1    | Gaurav  | Delhi   | Computers | 
| 2    | Aarav   | Mumbai  | History   | 
| 15   | Harshit | Delhi   | Commerce  | 
| 20   | Gaurav  | Jaipur  | Computers | 
+------+---------+---------+-----------+ 
4 rows in set (0.00 sec) 
mysql> Select count(*), Name from Student; 
+----------+--------+ 
| count(*) | name   | 
+----------+--------+ 
| 4        | Gaurav | 
+----------+--------+ 
1 row in set (0.00 sec)

उपरोक्त क्वेरी के परिणाम से हम देख सकते हैं कि यह ग्रुप फंक्शन COUNT(*) का आउटपुट टेबल में कुल पंक्तियों की संख्या के रूप में लौटाता है लेकिन फील्ड 'Name' में मान 'Gaurav' भ्रामक है क्योंकि हम नहीं जानते कि यह कॉलम का पहला मान है या यह कई बार स्टोर है, MySQL इसे लौटाता है।

अब यदि हम इस क्वेरी को GROUP BY क्लॉज के साथ लिखते हैं तो परिणाम सेट निम्नानुसार होगा:

mysql> Select count(*), name from student GROUP BY id; 
+----------+---------+ 
| count(*) | name    | 
+----------+---------+ 
| 1        | Gaurav  | 
| 1        | Aarav   | 
| 1        | Harshit | 
| 1        | Gaurav  | 
+----------+---------+ 
4 rows in set (0.00 sec)

उपरोक्त परिणाम सेट से देखा जा सकता है कि GROUP BY क्लॉज की मदद से हमें एक सार्थक आउटपुट मिला।


  1. Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं? Java में MySQL के लिए PreparedStatement का उपयोग करके SELECT क्वेरी कैसे चलाएं?

    Java में PreparedStatement से SELECT क्वेरी निष्पादित करना SELECT क्वेरी के लिए executeQuery() मेथड का उपयोग किया जाता है। सिंटैक्स PreparedStatement pstmt = connection.prepareStatement(query); ResultSet rs = pstmt.executeQuery(); उदाहरण: डेटाबेस में टेबल बनाएं ); डेटा डालें: insert into JavaP

  1. - MySQL में REGEXP से रेगुलर एक्सप्रेशन पैटर्न मिलान क्वेरी

    MySQL का REGEXP ऑपरेटर रेगुलर एक्सप्रेशन पैटर्न मिलान करके पंक्तियों को फ़िल्टर करता है, जो LIKE से अधिक शक्तिशाली है। सिंटैक्स SELECT * FROM टेबल_नाम WHERE कॉलम_नाम REGEXP पैटर्न; उदाहरण: अंडरस्कोर के बाद अंक वाले कोड ढूंढें 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1573(StudentCode

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड