MySQL में एक COUNT()
शामिल है फ़ंक्शन, जो आपको यह पता लगाने की अनुमति देता है कि किसी क्वेरी से कितनी पंक्तियां वापस की जाएंगी। यह फ़ंक्शन SQL मानक का हिस्सा है, और इसका उपयोग अधिकांश रिलेशनल डेटाबेस प्रबंधन प्रणालियों के साथ किया जा सकता है।
COUNT()
फ़ंक्शन का उपयोग आवश्यकता पड़ने पर किसी क्वेरी के परिणामों को प्रभावित करने के लिए भी किया जा सकता है, उदाहरण के लिए, केवल उन परिणामों को लौटाकर जिनकी पंक्ति संख्या दी गई राशि से अधिक है।
इस लेख में COUNT()
. के उदाहरण हैं MySQL में उपयोग।
डेटा
सबसे पहले, यहां वह डेटा है जिसका उपयोग हम इस पृष्ठ पर उदाहरणों के लिए करेंगे:
चुनें *कार्यों से;
परिणाम:
+----- +| टास्क आईडी | टास्कनाम | टास्क डिस्क्रिप्शन |+----------+---------------------+---------------------+ | 1 | बाग करो | शून्य || 2 | फ़ीड बिल्लियों | शून्य || 3 | पेंट छत | शून्य || 4 | चलने के लिए कुत्ते को ले जाओ | शून्य || 5 | आराम करो | शून्य || 6 | फ़ीड बिल्लियों | नल |+----------+---------------------+---------------------+
सभी पंक्तियों को एक तालिका में गिनें
आप COUNT()
. का उपयोग कर सकते हैं तालिका में पंक्तियों की कुल संख्या वापस करने के लिए:
कार्यों से COUNT(*)चुनें;
परिणाम:
+----------+| COUNT(*) |+----------+| 6 |+----------+
यह तालिका में पंक्तियों की संख्या लौटाता है क्योंकि हमने परिणामों को कम करने के लिए कोई मानदंड प्रदान नहीं किया है।
परिणाम संक्षिप्त करें
जब हम WHERE
. जोड़ते हैं क्लॉज जो परिणाम सेट को कम करता है, हमें एक छोटी संख्या मिलती है:
उन कार्यों से COUNT(*)चुनें, जहां टास्कनाम '%cat%' जैसा है;
परिणाम:
+----------+| COUNT(*) |+----------+| 2 |+----------+
एकल स्तंभ बनाम तारांकन चिह्न (*)
पिछले उदाहरण सभी स्तंभों पर गणना लागू करने के लिए तारांकन का उपयोग करते हैं। किसी भी क्वेरी की तरह, तारांकन वैकल्पिक है, और इसका उपयोग सभी स्तंभों को वापस करने के लिए वाइल्डकार्ड के रूप में किया जाता है। तो COUNT()
. का उपयोग करते समय फ़ंक्शन, आपके पास तर्क के रूप में विशिष्ट कॉलम (सभी स्तंभों के विपरीत) प्रदान करने का विकल्प भी है।
उदाहरण:
कार्यों से COUNT(टास्कनाम)चुनें;
परिणाम:
+-----------------+| COUNT(टास्कनाम) |+-----------------+| 6 |+-----------------+
हालांकि यह उदाहरण वही परिणाम देता है जो हमें तारक का उपयोग करने पर मिला था, लेकिन जरूरी नहीं कि हमेशा ऐसा ही हो। उदाहरण के लिए, यदि हम कोई भिन्न कॉलम निर्दिष्ट करते हैं तो यहां क्या होता है:
कार्यों से COUNT(कार्य विवरण) चुनें;
परिणाम:
+--------------------------+| COUNT(कार्य विवरण) |+--------------------------+| 0 |+--------------------------+
इस मामले में हमें शून्य मिलता है, क्योंकि उस विशेष कॉलम में प्रत्येक पंक्ति में शून्य मान होते हैं।
उदाहरण - विशिष्ट
आप DISTINCT
जोड़ सकते हैं केवल विभिन्न गैर-NULL
वाली पंक्तियों की संख्या लौटाने का तर्क मान।
आपने देखा होगा कि TaskName
कॉलम में एक डुप्लिकेट मान है ("बिल्लियों को खिलाएं" दो बार दिखाई देता है)। यदि आप डुप्लिकेट की गणना नहीं करना चाहते हैं तो इससे समस्या हो सकती है।
यदि हम DISTINCT
. लागू करते हैं तो यह कैसा दिखता है TaskName
. के लिए तर्क कॉलम:
कार्यों से COUNT(DISTINCT टास्कनाम) चुनें;
परिणाम:
+--------------------------+| COUNT(DISTINCT टास्कनाम) |+--------------------------+| 5 |+-------------------------------------+
इसलिए, हालांकि तालिका में छह पंक्तियाँ हैं, उनमें से दो डुप्लिकेट हैं। इसलिए, उन दो को एक के रूप में गिना जाता है, हमें पांच का परिणाम मिलता है।
उदाहरण - हैविंग क्लॉज
आप COUNT()
. का भी उपयोग कर सकते हैं HAVING
. के साथ वापस आने वाली पंक्तियों की संख्या के आधार पर परिणाम सेट को सीमित करने के लिए क्लॉज।
पिछले उदाहरणों से भिन्न डेटा सेट का उपयोग करते हुए एक उदाहरण यहां दिया गया है:
संगीत का उपयोग करें; ar.ArtistName चुनें, COUNT(al.AlbumName) 'एल्बम गणना' कलाकारों से arINNER ar.ArtistId =al.ArtistIdGROUP BY ar.ArtistNameHAVING COUNT(al.AlbumName)> 1;
परिणाम:
+--------------------------+---------------+| कलाकार का नाम | एल्बम की संख्या |+--------------------------+---------------+| आयरन मेडेन | 5 || डेविन टाउनसेंड | 3 || माइकल रॉक करना सीखता है | 3 || टॉम जोन्स | 3 || एलन होल्ड्सवर्थ | 2 |+--------------------------+---------------+
यह क्वेरी केवल उन कलाकारों को लौटाती है जिन्होंने 1 से अधिक एल्बम जारी किए हैं। यहाँ क्या होता है जब हम HAVING
. में मान बढ़ाते हैं खंड:
संगीत का उपयोग करें; ar.ArtistName चुनें, COUNT(al.AlbumName) 'एल्बम काउंट' कलाकारों से arINNER ar.ArtistId =al.ArtistIdGROUP BY ar.ArtistNameHAVING COUNT(al.AlbumName)> 4;; पूर्व>परिणाम:
+---------------+---------------+| कलाकार का नाम | एल्बम गणना |+-------------+---------------+| आयरन मेडेन | 5 |+---------------+----------------+