SELF-CHECK
An enrollment with no activity is retained by a LEFT JOIN. Will COUNT(*) necessarily return 0 for that enrollment?

REFERENCE REASONING
No. It counts the retained row. COUNT(activity_id) returns 0 when that joined ID is null, assuming activity_id is non-null for actual activities.

This is a reasoning reference for the supplied fictional case, not an executed app or tested cloud deployment. Alternative approaches are valid when supported by stated assumptions and evidence.
