MySQL + SQL · Lesson 56
GROUP BY and HAVING
GROUP BY — Summarise per Group
GROUP BY splits rows into groups and applies an aggregate to each group.
SELECT class, COUNT(*) AS total
FROM students
GROUP BY class;Shows how many students are in each class.
Average per Group
SELECT class, AVG(marks) AS avg_marks
FROM students
GROUP BY class;
HAVING — Filter Groups
HAVING filters groups after aggregation (WHERE filters rows before).
SELECT class, AVG(marks) AS avg_marks
FROM students
GROUP BY class
HAVING AVG(marks) >= 80;Only classes whose average is 80 or more.
WHERE vs HAVING
WHERE filters individual rows BEFORE grouping. HAVING filters groups AFTER grouping. Aggregate conditions (like AVG) must use HAVING.
Summary
- GROUP BY makes groups; aggregates run per group.
- HAVING filters groups; WHERE filters rows before grouping.
💻 Live Code Editor
Is page ki language (MYSQL) mein code likhein aur turant chalाएं — yahीं, bina kuch install kiye.Powered by OneCompiler. Agar editor na khule to yahान naye tab mein kholein.
💻 Live Code Editor
Is page ke program yahan ready hain — chalाएं, badlें aur seekhें. Bina kuch install kiye.
Powered by OneCompiler. Editor mein code apne aap aa jata hai — Run dabaakर output dekhें.
Agar load na ho to naye tab mein kholें.