What is an Aggregate Query?
An aggregate query uses multiple functions together to get complete statistics in ONE query.
Instead of running 4 separate queries, run ONE:
SELECT grade, COUNT(*) AS total,
MIN(age) AS youngest,
MAX(age) AS oldest,
AVG(age) AS avg_age
FROM students
GROUP BY grade;This single query tells you:
- COUNT โ How many students per grade
- MIN โ Youngest age in each grade
- MAX โ Oldest age in each grade
- AVG โ Average age per grade
How It Works
Complete Query Pattern
Use WHERE + GROUP BY + HAVING together:
SELECT grade, COUNT(*) AS count, AVG(age) AS avg
FROM students
WHERE age >= 19
GROUP BY grade
HAVING COUNT(*) > 1;Order matters:
- WHERE โ Filter rows first (age >= 19)
- GROUP BY โ Group filtered rows
- HAVING โ Filter groups (count > 1)
Quick Summary
- SELECT โ Pick columns + aggregates
- WHERE โ Filter rows before grouping
- GROUP BY โ Make groups
- HAVING โ Filter groups after