Changes between Version 5 and Version 6 of OtherDevelopments


Ignore:
Timestamp:
06/15/26 00:35:39 (31 hours ago)
Author:
221296
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OtherDevelopments

    v5 v6  
    1616
    1717=== Scenario 1: Yearly Analysis of Overall Platform Activity and Student Success ===
     18
     19{{{
     20WITH course_year_performance AS (
     21    SELECT
     22        EXTRACT(YEAR FROM qa.attempt_date) AS year,
     23        c.course_id,
     24        ROUND(AVG(qa.score), 2) AS final_grade_per_course
     25    FROM quiz_attempt qa
     26    JOIN quiz q
     27        ON q.quiz_id = qa.quiz_id
     28    JOIN lesson l
     29        ON l.lesson_id = q.lesson_id
     30    JOIN module m
     31        ON m.module_id = l.module_id
     32    JOIN course c
     33        ON c.course_id = m.course_id
     34    GROUP BY
     35        EXTRACT(YEAR FROM qa.attempt_date),
     36        c.course_id
     37),
     38year_course_summary AS (
     39    SELECT
     40        year,
     41        ROUND(AVG(final_grade_per_course), 2) AS final_year_success
     42    FROM course_year_performance
     43    GROUP BY year
     44)
     45SELECT
     46    EXTRACT(YEAR FROM e.enroll_date) AS year,
     47    COUNT(DISTINCT c.instructor_id) AS total_instructor_activity,
     48    COUNT(DISTINCT e.user_id) AS total_students,
     49    COUNT(DISTINCT e.enrollment_id) AS total_enrollments,
     50    COUNT(DISTINCT qa.attempt_id) AS total_attempts,
     51    COUNT(DISTINCT CASE
     52        WHEN e.completion_status = 'COMPLETED' THEN e.enrollment_id
     53    END) AS completed_enrollments,
     54    COUNT(DISTINCT cert.certificate_id) AS total_certificates,
     55    ROUND(AVG(e.progress_percentage), 2) AS avg_student_success_within_courses,
     56    ROUND(AVG(qa.score), 2) AS avg_final_grade_per_course, ycs.final_year_success
     57FROM enrollment e
     58JOIN course c
     59    ON c.course_id = e.course_id
     60LEFT JOIN certificate cert
     61    ON cert.enrollment_id = e.enrollment_id
     62LEFT JOIN module m
     63    ON m.course_id = c.course_id
     64LEFT JOIN lesson l
     65    ON l.module_id = m.module_id
     66LEFT JOIN quiz q
     67    ON q.lesson_id = l.lesson_id
     68LEFT JOIN quiz_attempt qa
     69    ON qa.quiz_id = q.quiz_id
     70    AND qa.user_id = e.user_id
     71LEFT JOIN year_course_summary ycs
     72    ON ycs.year = EXTRACT(YEAR FROM e.enroll_date)
     73GROUP BY
     74    EXTRACT(YEAR FROM e.enroll_date), ycs.final_year_success
     75ORDER BY year;
     76
     77}}}
    1878
    1979This query provides a yearly analytical overview of the platform.