यदि आपको SQLite का उपयोग करते समय डेटाबेस क्वेरी के परिणाम सेट में "गिनती" कॉलम जोड़ने की आवश्यकता है, तो आप count()
का उपयोग कर सकते हैं गिनती प्रदान करने के लिए कार्य करता है, और GROUP BY
उस कॉलम को निर्दिष्ट करने के लिए क्लॉज जिसके लिए परिणामों को समूहीकृत करना है।
उदाहरण
प्रदर्शित करने के लिए यहां एक त्वरित उदाहरण दिया गया है।
SELECT ArtistId, count(Title)
FROM Album
GROUP BY ArtistId
LIMIT 10;
परिणाम:
ArtistId count(Title) ---------- ------------ 1 2 2 2 3 1 4 1 5 1 6 2 7 1 8 3 9 1 10 1
इस मामले में, प्रत्येक कलाकार की आईडी ArtistId . में सूचीबद्ध होती है कॉलम, और उस कलाकार के लिए एल्बमों की संख्या गिनती(शीर्षक) . में सूचीबद्ध है कॉलम।
इसे पढ़ने में थोड़ा आसान बनाने के लिए, यहां एक समान क्वेरी है, लेकिन इस बार मैं आईडी के बजाय कलाकार का नाम लौटाता हूं। मैं कलाकार . के साथ आंतरिक जुड़ाव करके ऐसा करता हूं टेबल।
इस मामले में, मैं एक WHERE
जोड़ता हूं केवल उन कलाकारों को वापस करने के लिए खंड जो D . अक्षर से शुरू होते हैं .
SELECT
ar.Name,
count(al.Title)
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name;
परिणाम:
Name count(al.Title) --------------- --------------- David Coverdale 1 Deep Purple 11 Def Leppard 1 Dennis Chambers 1 Djavan 2 Dread Zeppelin 1
गणना द्वारा आदेश ()
हम इसे थोड़ा संशोधित कर सकते हैं ताकि परिणाम सेट गिनती द्वारा आदेशित हो। दूसरे शब्दों में, हम इसे ऑर्डर कर सकते हैं ताकि सबसे अधिक एल्बम वाले कलाकारों को पहले सूचीबद्ध किया जाए, और इसके विपरीत।
SELECT
ar.Name,
count(al.Title)
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name
ORDER BY count(al.Title) DESC;
परिणाम:
Name count(al.Title) -------------------- --------------- Deep Purple 11 Djavan 2 David Coverdale 1 Def Leppard 1 Dennis Chambers 1 Dread Zeppelin 1
दरअसल, हम एक कदम और आगे बढ़ सकते हैं और count()
. के लिए एक उपनाम जोड़ सकते हैं . इससे हमें ORDER BY
. में इसकी नकल करने से राहत मिलेगी खंड।
SELECT
ar.Name,
count(al.Title) AS AlbumCount
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
WHERE ar.Name LIKE 'D%'
GROUP BY ar.Name
ORDER BY AlbumCount DESC;
परिणाम:
Name AlbumCount -------------------- ---------- Deep Purple 11 Djavan 2 David Coverdale 1 Def Leppard 1 Dennis Chambers 1 Dread Zeppelin 1