Free tutorials & notes in Hindi & English · Clean code examples · Mobile friendly learning
MySQL + SQL · Lesson 56

MySQL में Aggregate Functions

Aggregation क्या करता है

Aggregate functions summary questions का उत्तर देते हैं: कितने students, class average क्या, highest marks कौन-से? GROUP BY बिना filtered input one group होता और query सामान्यतः one summary row देती है।

Verified dataset: Aarav (X-A, 86.50, Active), Meera (X-A, 91.00, Active), Kabir (X-B, 74.00, Inactive) और Sana (X-B, 88.50, Active)। Total marks = 340.00 और overall average = 85.00।
SELECT COUNT(*) AS students,
       SUM(marks) AS total_marks,
       ROUND(AVG(marks), 2) AS average_marks,
       MIN(marks) AS lowest,
       MAX(marks) AS highest
FROM students;
students | total_marks | average_marks | lowest | highest 4 | 340.00 | 85.00 | 74.00 | 91.00

पाँच Core Aggregates

FunctionAnswer
COUNT(*)कितनी rows?
COUNT(column)कितनी non-NULL values?
SUM(column)Total कितना?
AVG(column)Known values का mean?
MIN / MAXSmallest और largest values?

NULL, Empty Inputs और Result Types

Most aggregates NULL ignore करते हैं; AVG missing marks को zero नहीं मानता। COUNT(*) row count करता है। Filter से no rows आएँ तो COUNT 0, जबकि SUM/AVG/MIN/MAX सामान्यतः NULL देते हैं।

SELECT COUNT(*) AS rows_found,
       COUNT(marks) AS known_marks,
       COALESCE(SUM(marks), 0) AS safe_total
FROM students
WHERE class_name = 'XII-Z';

COALESCE केवल zero semantically correct हो तो लें। Exact precision input type पर depend है; marks/money में DECIMAL लें।

पहले Rows, बाद में Groups Filter

SELECT COUNT(*) AS active_students,
       ROUND(AVG(marks), 2) AS active_average
FROM students
WHERE status = 'Active';
active_students | active_average 3 | 88.67

WHERE inactive rows aggregation से पहले हटाता है। HAVING completed groups filter करता है।

Whole Table बनाम Grouped Report

SELECT class_name,
       COUNT(*) AS students,
       ROUND(AVG(marks), 2) AS average_marks
FROM students
GROUP BY class_name
ORDER BY class_name;
X-A | 2 | 88.75 X-B | 2 | 81.25

हर selected nonaggregate column group के लिए valid होना चाहिए। ONLY_FULL_GROUP_BY ambiguous columns reject करता है।

गलतियाँ और अभ्यास

  • COUNT(*) और COUNT(nullable_column) confuse करना।
  • Aggregate condition WHERE में लगाना।
  • Business rule बिना NULL को zero बनाना।
  • Aggregates के साथ unrelated columns select करना।
  • Calculation complete होने से पहले round करना।
  1. Active total और average निकालें।
  2. Known marks को rows से अलग count करें।
  3. हर status का summary लौटाएँ।
  4. NULL mark insert होने पर result predict करें।

त्वरित सारांश

  • Aggregates one result per group देते हैं।
  • COUNT, SUM, AVG, MIN, MAX के NULL rules अलग हैं।
  • WHERE input rows, GROUP BY groups और HAVING groups filter करता है।
  • Correct numeric types लें और presentation पर round करें।

Official संदर्भ

References 14 August 2026 को review किए गए। Outputs stated dataset पर हैं।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Aggregate function क्या है?
यह input rows के set को हर group के लिए एक value में summarize करता है, जैसे count, total, average, minimum या maximum।
क्या aggregate functions NULL ignore करते हैं?
COUNT(expression), SUM, AVG, MIN और MAX NULL inputs ignore करते हैं। COUNT(*) rows गिनता है। Non-NULL input न हो तो most numeric aggregates NULL देते हैं।
क्या aggregate functions WHERE में उपयोग हो सकते हैं?
Same query level पर सीधे नहीं, क्योंकि WHERE groups बनने से पहले rows filter करता है। Aggregate condition के लिए HAVING या outer query लें।
Aggregate और scalar function में क्या अंतर है?
Aggregate row set से one result per group देता है। Scalar function सामान्यतः हर input row के लिए one result देता है।
क्या AVG missing marks को zero मानता है?
नहीं। AVG NULL ignore करता है। Business rule missing को zero मानता हो तो COALESCE explicitly लगाएँ, पर meaning verify करें।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.