Chapter 6SQL Tutorial~1 min read
Aggregate Functions & GROUP BY
COUNT, SUM, AVG, GROUP BY, HAVING
Aggregate functions multiple rows वर calculations करतात आणि एकच result देतात. COUNT, SUM, AVG, MIN, MAX — हे सर्वात common आहेत. GROUP BY सोबत वापरून groups नुसार statistics मिळवता येतात.
Basic Aggregate Functions
COUNT, SUM, AVG, MIN, MAX
sql
-- COUNT — किती rows?
SELECT COUNT(*) AS total_students FROM students;
SELECT COUNT(email) AS students_with_email FROM students; -- NULL skip
SELECT COUNT(DISTINCT city) AS unique_cities FROM students;
-- SUM — total
SELECT SUM(marks) AS total_marks FROM students;
SELECT SUM(marks) AS pune_total FROM students WHERE city = 'Pune';
-- AVG — average
SELECT AVG(marks) AS class_average FROM students;
SELECT ROUND(AVG(marks), 2) AS avg_marks FROM students;
-- MIN / MAX
SELECT MIN(marks) AS lowest, MAX(marks) AS highest FROM students;
SELECT MIN(name) AS first_alpha FROM students; -- alphabetically
-- एकाच query मध्ये सगळे
SELECT
COUNT(*) AS total,
ROUND(AVG(marks), 1) AS average,
MIN(marks) AS lowest,
MAX(marks) AS highest,
SUM(marks) AS total_marks
FROM students;GROUP BY — Groups नुसार Aggregation
GROUP BY examples
sql
-- प्रत्येक city मध्ये किती students?
SELECT city, COUNT(*) AS student_count
FROM students
GROUP BY city;
-- Pune: 3, Mumbai: 2, Nagpur: 1 ...
-- प्रत्येक city चे average marks
SELECT city, ROUND(AVG(marks), 1) AS avg_marks
FROM students
GROUP BY city
ORDER BY avg_marks DESC;
-- City नुसार detailed stats
SELECT
city,
COUNT(*) AS students,
ROUND(AVG(marks), 1) AS avg_marks,
MAX(marks) AS top_score,
SUM(marks) AS total_marks
FROM students
GROUP BY city
ORDER BY avg_marks DESC;HAVING — Groups Filter करणे
HAVING vs WHERE
sql
-- HAVING — GROUP BY नंतर filter करतो
-- WHERE — GROUP BY आधी rows filter करतो
-- 2 पेक्षा जास्त students असलेल्या cities
SELECT city, COUNT(*) AS student_count
FROM students
GROUP BY city
HAVING COUNT(*) > 2;
-- Average 75 पेक्षा जास्त असलेल्या cities
SELECT city, ROUND(AVG(marks), 1) AS avg
FROM students
GROUP BY city
HAVING AVG(marks) > 75
ORDER BY avg DESC;
-- WHERE + GROUP BY + HAVING एकत्र
SELECT city, COUNT(*) AS passed_students
FROM students
WHERE marks >= 40 -- आधी failed filter
GROUP BY city
HAVING COUNT(*) >= 2 -- नंतर count filter
ORDER BY passed_students DESC;📌
SQL Query execution order: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. म्हणून WHERE मध्ये aggregate functions नाही वापरता येत — त्यासाठी HAVING वापरतात.
✅ Key Points — लक्षात ठेवा
- ▸COUNT(*) — सगळ्या rows, COUNT(col) — non-NULL rows
- ▸SUM, AVG, MIN, MAX — numeric columns वर
- ▸GROUP BY col — col च्या unique values नुसार groups
- ▸HAVING — groups filter (aggregate conditions साठी)
- ▸WHERE — individual rows filter (aggregate आधी)
0/10 chapters पूर्ण