Database MCQ – Set 12 | Aggregate Functions, GROUP BY and HAVING (MySQL) में COUNT(), SUM(), AVG(), MAX(), MIN(), GROUP BY, HAVING, WHERE और HAVING का अंतर, DISTINCT के साथ aggregate functions, alias (AS) तथा multi-column GROUP BY पर 20 प्रश्न सरल हिंदी व्याख्या के साथ दिए गए हैं। DCA, PGDCA, BCA, ITI COPA और अन्य कंप्यूटर परीक्षाओं की तैयारी के लिए उपयोगी।
बहुविकल्पीय प्रश्नों के लिए निर्देश
- हर प्रश्न को ध्यान से पढ़ें।
- चार विकल्पों में से एक सही उत्तर चुनें।
- सही उत्तर पर ✅ और गलत उत्तर पर ❌ का चिन्ह दिखाई देगा।
- गलत उत्तर मिलने पर आप दोबारा प्रयास कर सकते हैं।
- सभी प्रश्नों को हल करने के पश्चात् कृपया Show Score बटन पर क्लिक करें। उत्तीर्ण होने के लिए न्यूनतम अंक प्रतिशत 60% है।
- अपने स्कोर को सुधारने के लिए Try Again बटन का उपयोग करें।
MySQL Aggregate Functions, GROUP BY and HAVING MCQ – Set 12
1. SQL में COUNT() फंक्शन का उपयोग किसलिए होता है? (What is COUNT() used for in SQL?)
सही उत्तर : (A) Rows की संख्या गिनने के लिए (To count rows)
Explanation: COUNT() फंक्शन result set में कितनी rows हैं, यह गिनता है। जैसे SELECT COUNT(*) FROM Student; बताता है कि Student टेबल में कुल कितने रिकॉर्ड हैं। यह सॉर्टिंग, टेबल बनाने या डेटाबेस बंद करने के लिए नहीं है।
2. किसी column में non-NULL values की संख्या गिनने के लिए कौन-सा expression सही है? (Which expression counts non-NULL values in a column?)
सही उत्तर : (B) COUNT(column_name)
Explanation: COUNT(column_name) उस कॉलम में जितनी non-NULL values हैं, उन्हें गिनता है। ध्यान दें—COUNT(*) सभी rows गिनता है, पर COUNT(column_name) NULL values को नहीं गिनता। SUM, AVG और MAX क्रमशः जोड़, औसत और सबसे बड़ी value निकालते हैं, गिनती नहीं करते।
3. COUNT() क्या गिनता है? (What does COUNT() count?)
सही उत्तर : (C) Result set की rows (Rows in the result set)
Explanation: COUNT() result set में आने वाली rows की गिनती करता है। COUNT(*) में सभी rows गिनी जाती हैं, जबकि COUNT(column) में उस कॉलम की non-NULL values गिनी जाती हैं। यह केवल NULL, केवल numeric columns या केवल unique tables नहीं गिनता।
4. SUM() फंक्शन का उपयोग किसलिए किया जाता है? (What is the SUM() function used for?)
सही उत्तर : (D) न्यूमेरिक वैल्यूज़ का टोटल निकालने के लिए (To calculate the total of numeric values)
Explanation: SUM() किसी numeric कॉलम की सभी values को जोड़कर total देता है, जैसे SELECT SUM(salary) FROM employees; सभी कर्मचारियों की कुल सैलरी बताएगा। यह औसत, सबसे छोटी value या सॉर्टिंग के लिए नहीं है।
5. AVG() फंक्शन क्या लौटाता है? (What does AVG() return?)
सही उत्तर : (A) औसत वैल्यू (Average value)
Explanation: AVG() numeric कॉलम की सभी values का औसत (average) निकालता है, जैसे SELECT AVG(marks) FROM Student; सभी छात्रों के औसत अंक बताएगा। यह सबसे बड़ी value, rows का नाम या unique records की सूची नहीं लौटाता।
6. किसी numeric column की सबसे बड़ी value खोजने के लिए कौन-सा फंक्शन उपयोग होता है? (Which function is used to find the largest value in a numeric column?)
सही उत्तर : (B) MAX()
Explanation: MAX() किसी कॉलम की सबसे बड़ी value लौटाता है, जैसे SELECT MAX(salary) FROM employees; सबसे अधिक सैलरी बताएगा। MIN() सबसे छोटी value, SUM() total और COUNT() rows की संख्या के लिए है।
7. MIN() फंक्शन का उपयोग किसलिए होता है? (What is MIN() used for?)
सही उत्तर : (C) सबसे छोटी वैल्यू खोजने के लिए (To find the smallest value)
Explanation: MIN() किसी कॉलम की सबसे छोटी value बताता है, जैसे SELECT MIN(marks) FROM Student; सबसे कम अंक दिखाएगा। यह total, average या rows की गिनती के लिए नहीं है।
8. GROUP BY clause का मुख्य कार्य क्या है? (What is the main function of the GROUP BY clause?)
सही उत्तर : (D) समान वैल्यूज़ वाली Rows को groups में बाँटना (To group rows with matching values)
Explanation: GROUP BY उन rows को एक साथ जोड़ता है जिनमें किसी कॉलम की value समान हो। जैसे GROUP BY department_id से एक ही department के सभी कर्मचारी एक group में आ जाते हैं। यह टेबल डिलीट, डेटाबेस रीनेम या रिकॉर्ड्स हटाने के लिए नहीं है।
9. GROUP BY के साथ aggregate फंक्शन का उपयोग क्यों किया जाता है? (Why are aggregate functions used with GROUP BY?)
सही उत्तर : (A) प्रत्येक ग्रुप के लिए समरी निकालने हेतु (To calculate a summary for each group)
Explanation: GROUP BY के साथ COUNT(), SUM(), AVG() जैसे functions हर group के लिए अलग-अलग summary देते हैं। जैसे SELECT department_id, COUNT(*) FROM employees GROUP BY department_id; हर department में कितने कर्मचारी हैं, यह बताता है। यह नाम बदलने, users हटाने या structure डिलीट करने के लिए नहीं है।
10. HAVING clause का उपयोग सामान्यतः किसलिए होता है? (What is the HAVING clause generally used for?)
सही उत्तर : (B) ग्रुप्स पर शर्त लगाने के लिए (To apply conditions to groups)
Explanation: HAVING GROUP BY से बने groups पर शर्त (condition) लगाता है। जैसे HAVING SUM(salary) > 50000; केवल उन departments को दिखाएगा जिनकी कुल सैलरी 50,000 से अधिक है। यह टेबल बनाने, डेटा टाइप बदलने या डेटाबेस चुनने के लिए नहीं है।
11. WHERE और HAVING में मुख्य अंतर क्या है? (What is the main difference between WHERE and HAVING?)
सही उत्तर : (C) WHERE Rows को grouping से पहले filter करता है; HAVING ग्रुप्स को फ़िल्टर करता है (WHERE filters rows before grouping; HAVING filters groups)
Explanation: WHERE अलग-अलग rows पर शर्त लगाता है और GROUP BY से पहले चलता है। HAVING GROUP BY के बाद बने groups पर शर्त लगाता है। इसलिए aggregate functions (जैसे SUM, COUNT) पर शर्त लगाने के लिए HAVING का उपयोग होता है, WHERE का नहीं।
12. कौन-सी query प्रत्येक department के कर्मचारियों की संख्या दिखाती है? (Which query shows the number of employees in each department?)
सही उत्तर : (D) SELECT department_id, COUNT(*) FROM employees GROUP BY department_id;
Explanation: हर department के लिए अलग गिनती चाहिए, इसलिए GROUP BY department_id जरूरी है। यह query हर department_id के साथ उस department के कर्मचारियों की संख्या दिखाएगी। विकल्प (A) केवल department_id दिखाता है, (B) पूरी कंपनी की कुल गिनती देता है और (C) में GROUP BY नहीं है, जिससे गलत परिणाम मिलेगा।
13. यदि salary column में NULL values हों, तो AVG(salary) सामान्यतः उन्हें कैसे handle करता है? (How does AVG(salary) generally handle NULL values in the salary column?)
सही उत्तर : (A) उन्हें कैल्कुलेशन से अनदेखा करता है (Ignores them in the calculation)
Explanation: SQL के aggregate functions (जैसे AVG, SUM, COUNT(column)) NULL values को अनदेखा करते हैं। इसलिए AVG(salary) केवल non-NULL salaries का औसत निकालता है। इसका मतलब यह नहीं कि NULL को 1000 माना जाए, क्वेरी फेल हो या rows डिलीट हों।
14. Aggregate function में DISTINCT का उपयोग किसलिए किया जा सकता है? (What can DISTINCT be used for in an aggregate function?)
सही उत्तर : (B) डुप्लिकेट वैल्यूज़ हटाकर यूनीक वैल्यूज़ पर कैल्कुलेशन करने के लिए (To calculate using unique values while excluding duplicates)
Explanation: aggregate function के अंदर DISTINCT लगाने से डुप्लिकेट values पहले हटा दी जाती हैं और फिर गिनती/जोड़/औसत होता है। जैसे COUNT(DISTINCT city) केवल अलग-अलग शहरों की संख्या बताएगा। यह टेबल रीनेम, डेटाबेस बंद या कॉलम डिलीट करने के लिए नहीं है।
15. COUNT(DISTINCT city) क्या लौटाता है? (What does COUNT(DISTINCT city) return?)
सही उत्तर : (C) नॉन-NULL यूनीक सिटी वैल्यूज़ की संख्या (The number of distinct non-NULL city values)
Explanation: COUNT(DISTINCT city) में DISTINCT डुप्लिकेट शहरों को हटा देता है और COUNT केवल non-NULL values गिनता है। इसलिए यह बताता है कि टेबल में कितने अलग-अलग (distinct) शहर हैं, NULL शहर नहीं गिने जाते।
16. किसी group का total 50,000 से अधिक होने पर ही उसे दिखाने के लिए कौन-सा clause उपयुक्त है? (Which clause is suitable to display only groups whose total exceeds 50,000?)
सही उत्तर : (D) HAVING
Explanation: group के total (जैसे SUM) पर शर्त लगाने के लिए HAVING का उपयोग होता है, जैसे HAVING SUM(salary) > 50000;। ORDER BY सॉर्टिंग के लिए, LIMIT rows की संख्या सीमित करने के लिए और WHERE अलग-अलग rows पर शर्त लगाने के लिए होता है—aggregate पर नहीं।
17. Aggregate फंक्शन का उपयोग सामान्यतः किस प्रकार के result के लिए किया जाता है? (What type of result are aggregate functions generally used to produce?)
सही उत्तर : (A) कई rows के डेटा से समरी वैल्यू (A summary value from multiple rows)
Explanation: aggregate functions (COUNT, SUM, AVG, MAX, MIN) कई rows के डेटा को मिलाकर एक summary value देते हैं—जैसे कुल कर्मचारी, कुल सैलरी या औसत अंक। ये डेटाबेस का path, टेबल का नाम या पासवर्ड नहीं लौटाते।
18. Query में ORDER BY total DESC का क्या अर्थ है? (What does ORDER BY total DESC mean in a query?)
सही उत्तर : (B) टोटल को अवरोही क्रम में दिखाना (Display total in descending order)
Explanation: DESC का अर्थ है descending यानी अवरोही क्रम—बड़े से छोटे की ओर। इसलिए ORDER BY total DESC से सबसे अधिक total वाला group पहले दिखेगा। यह ascending क्रम नहीं है, न departments डिलीट करता है और न salary NULL करता है।
19. SQL query में aggregate result को alias देने के लिए कौन-सा keyword उपयोग किया जा सकता है? (Which keyword can be used to assign an alias to an aggregate result in an SQL query?)
सही उत्तर : (C) AS
Explanation: aggregate result को नया नाम (alias) देने के लिए AS keyword का उपयोग होता है, जैसे SELECT SUM(salary) AS total_salary FROM employees;। इससे output में कॉलम का नाम total_salary दिखेगा। INTO, VALUES और SETUP alias देने के लिए उपयोग नहीं होते।
20. GROUP BY department_id, job_title का क्या अर्थ है? (What does GROUP BY department_id, job_title mean?)
सही उत्तर : (D) दोनों कॉलम्स के combination के आधार पर ग्रुप्स बनाना (Create groups based on combinations of both columns)
Explanation: जब GROUP BY में दो कॉलम दिए जाते हैं, तो हर अलग combination (department_id + job_title) का एक अलग group बनता है। जैसे "Sales + Manager" एक group होगा और "Sales + Clerk" दूसरा। इससे हर department में हर job title के आधार पर अलग summary मिलती है।