FROM Learners JOIN Progress ON Learners.LearnerID=Progress.LearnerID WHERE Progress.CompletionPercentage=100 3. Courses with the Lowest Completion Rate Identify the courses with the lowest average completion percentage.
SELECT TOP 3(Courses.CourseID), Courses.CourseName,
AVG(Progress.CompletionPercentage) AS AvgCompletionPercent FROM Progress JOIN Courses ON Progress.CourseID=Courses.CourseID GROUP BY Courses.CourseName, Courses.CourseID ORDER BY AVG(Progress.CompletionPercentage) ASC
4. Average Duration of Courses with Learners Enrolled
Calculate the average duration of courses where at least one learner is enrolled.
SELECT Courses.CourseID, Courses.CourseName, AVG(Courses.Duration) AS
AvgCourseDuration FROM Courses LEFT JOIN Progress ON Courses.CourseID=Progress.CourseID LEFT JOIN Learners ON Progress.LearnerID=Learners.LearnerID GROUP BY Courses.CourseName, Courses.CourseID ORDER BY AVG(Progress.CompletionPercentage) OR, I tried the below query with subqueries, but I am doing something wrong, I won’t get a result: SELECT CourseID, AVG(Duration) AS AvgDuration FROM Courses WHERE CourseID IN( SELECT CourseID FROM Progress GROUP BY CourseID HAVING COUNT(LearnerID)>=1)
5. Top 3 Courses by Average Completion
Show the top 3 courses with the highest average completion percentage.
SELECT TOP 3(Courses.CourseID), Courses.CourseName,
AVG(Progress.CompletionPercentage) AS AvgCompletionPercent FROM Progress JOIN Courses ON Progress.CourseID=Courses.CourseID GROUP BY Courses.CourseName, Courses.CourseID ORDER BY AVG(Progress.CompletionPercentage) DESC