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