SQL & Databases·Relating and summarising

Aggregation and GROUP BY

Summarise thousands of rows into the handful of numbers that matter.

Beginner 14 min read Lesson 8 of 480 Challenge included
What you will be able to do
  • Use COUNT, SUM, AVG
  • Group and filter groups
  • Understand HAVING vs WHERE

Aggregate functions collapse rows into values. GROUP BY defines the buckets; HAVING filters the buckets after aggregation.

summary.sqlSQL
SELECT course_slug,
       COUNT(*) AS total,
       ROUND(AVG(minutes), 1) AS avg_minutes,
       SUM(minutes) AS total_minutes
FROM lessons
WHERE level = 'Beginner'
GROUP BY course_slug
HAVING COUNT(*) >= 3
ORDER BY avg_minutes DESC;
Your turn

Average lesson length

Hard

Return each course_slug and its average lesson minutes, only for courses with at least 3 lessons.

SQL · starter
SELECT course_slug, AVG(minutes)
FROM lessons
Check your understanding before moving on.
Knowledge checkQuestion 1

Which clause filters aggregated groups?

Select an answer to continue
Study tools

Make it yours.

Keep a private note for this lesson, then turn the key ideas into flashcards you can revisit.

Sign in to save notes and flashcards.Both are private to your account and stay with your progress.
Sign in
Finished reading?

Lock in what you just learned.

Mark this lesson complete to save your place and move one step closer to the certificate.

Next: NULLs and COALESCE
Lesson 8 of 480 · 0% of course