Lecture

JOIN with Aggregates

In real-world SQL, it's common to join multiple tables and then summarize results using aggregate functions like COUNT(), SUM(), or AVG().

This allows you to answer questions like:

  • How many classes each student is taking
  • How much revenue each customer generated
  • What is the average grade per course

Example: Count Classes per Student

As an example, let's say we have the following tables:

students

student_idname
1Alex
2Sara
3Daniel

enrollments

student_idclass_id
1A1
1B2
2C3

Below is an example of a JOIN with an aggregate function.

Join with COUNT aggregate
SELECT students.name, COUNT(enrollments.class_id) AS class_count FROM students LEFT JOIN enrollments ON students.student_id = enrollments.student_id GROUP BY students.name;

Output:

The query will return the number of classes each student is taking.

nameclass_count
Alex2
Sara1
Daniel0

LEFT JOIN ensures students with no enrollments are still included. COUNT(enrollments.class_id) counts how many classes each student is taking.


JOIN + Aggregation Patterns

Below is a table of common join and aggregation patterns.

GoalJoin TypeAggregate Function
Count related entriesLEFT JOINCOUNT()
Total related valuesJOINSUM()
Average from related entriesJOINAVG()
Summarize multiple relationshipsanywith GROUP BY

Combining JOINs with aggregation allows you to:

  • Build complete and meaningful reports
  • Track performance across relationships
  • Generate business insights and metrics
Quiz
0 / 1

It is possible to use a LEFT JOIN to ensure that all students are included in a count of classes they are taking, even if they are not enrolled in any classes.

True
False

Lecture

AI Tutor

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Tables

Execution Result