pub async fn get_completion_stats_by_email_domain(
conn: &mut PgConnection,
year: Option<i32>,
) -> ModelResult<Vec<DomainCompletionStats>>
Expand description
Produces a summary of course completions grouped by user’s email domain.
The query deduplicates multiple completions of the same (user, course module) by:
- Preferring any completion that has a registration (exists in course_module_completion_registered_to_study_registries)
- If no registered completion is found, it picks the completion with the newest created_at timestamp
The query aggregates the following counts and sums by email domain:
total_completions
- Number of unique completions (after deduplication) for the domainunique_users
- Number of distinct users (by user_id) in those completionsregistered_completion_percentage
- Fraction of completions that are registered (multiplied by 100)registered_completions
- Number of completions with a matching registrationnot_registered_completions
- Number of completions without a matching registrationusers_with_some_registered_completions
- Count of distinct users with at least one registered completionusers_with_some_unregistered_completions
- Count of distinct users with at least one unregistered completionregistered_ects_credits
- Total ECTS credits for registered completionsnot_registered_ects_credits
- Total ECTS credits for unregistered completions
§Arguments
year
- Optional year to filter completions by